Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex-忽略长度点中的指定字符_Regex - Fatal编程技术网

Regex-忽略长度点中的指定字符

Regex-忽略长度点中的指定字符,regex,Regex,如何实现正则表达式最多允许8个字符,但忽略“-”(减号)符号?例如,“1234-5678”应该通过,但“123456789”不通过。此解决方案不适用于我: ^(([\d\w]{0,8})|([\d\w-]{0,9}))$ By…最多允许8个字符不清楚允许哪种类型的字符,但从您自己的尝试来看,似乎您希望匹配字母和数字以及任意数量的破折号(两个字母或数字之间的一个),最大长度为8,而不计算破折号: ^(?:[a-zA-Z0-9]-?){0,7}[a-zA-Z0-9]$ 注意:这不允许空字符串,

如何实现正则表达式最多允许8个字符,但忽略“-”(减号)符号?例如,“1234-5678”应该通过,但“123456789”不通过。此解决方案不适用于我:

^(([\d\w]{0,8})|([\d\w-]{0,9}))$
By…最多允许8个字符不清楚允许哪种类型的字符,但从您自己的尝试来看,似乎您希望匹配字母和数字以及任意数量的破折号(两个字母或数字之间的一个),最大长度为8,而不计算破折号:

^(?:[a-zA-Z0-9]-?){0,7}[a-zA-Z0-9]$

注意:这不允许空字符串,至少允许一个字符。

By…最多允许八个字符不清楚允许哪种类型的字符,但从您自己的尝试来看,似乎您希望匹配字母和数字以及任意数量的破折号(两个字母或数字之间的一个)最大长度为8,不计算破折号:

^(?:[a-zA-Z0-9]-?){0,7}[a-zA-Z0-9]$


注意:这不允许空字符串,至少一个字符。

这也允许空字符。 也允许-在开始和结束时。 还允许多个字符之间切换:

^-*(?:[\w\d]-*){0,8}$

这一个也允许空字符。 也允许-在开始和结束时。 还允许多个字符之间切换:

^-*(?:[\w\d]-*){0,8}$

什么regex口味?哪个工具?使用输入示例显示工具的调用。是否正在查找
^(?:\w-?){8}$
@revo就这样,谢谢!!实际上,您的解决方案只允许8个字符,因此正确的解决方案是:
^([\w]-?){0,8}$
什么正则表达式风格?哪个工具?使用输入示例显示工具的调用。是否正在查找
^(?:\w-?){8}$
@revo就这样,谢谢!!实际上,您的解决方案只允许8个字符,因此正确的字符是:
^([\w]-?){0,8}$