正则表达式以随机顺序精确计算字符数
Regex for exactly number of chars in random order
我有一个接受 8-10 个字符的正则表达式:仅 # 和 -(随机顺序)
^[-#]{8,10}$
但我正好需要 8 个 # 和 0-2 个 -
例如,正确的字符串是:
-########-
########
##-###-###
正则表达式
^[#]{8}[-][0,2]$
它不起作用,因为在此特定顺序中仅接受 8 个 # 和一些 -
您可以断言 8-10 个字符,并匹配被可选 -
个字符包围的 8 # 个字符
^(?=.{8,10}$)(?:-*#){8}-*$
说明
^
字符串开头
(?=.{8,10}$)
正面前瞻断言总共 8 - 10 个字符
(?:-*#){8}
匹配8次可选-
然后#
-*
匹配可选尾随 -
$
字符串结束
看到一个regex demo。
我有一个接受 8-10 个字符的正则表达式:仅 # 和 -(随机顺序)
^[-#]{8,10}$
但我正好需要 8 个 # 和 0-2 个 -
例如,正确的字符串是:
-########-
########
##-###-###
正则表达式
^[#]{8}[-][0,2]$
它不起作用,因为在此特定顺序中仅接受 8 个 # 和一些 -
您可以断言 8-10 个字符,并匹配被可选 -
个字符包围的 8 # 个字符
^(?=.{8,10}$)(?:-*#){8}-*$
说明
^
字符串开头(?=.{8,10}$)
正面前瞻断言总共 8 - 10 个字符(?:-*#){8}
匹配8次可选-
然后#
-*
匹配可选尾随-
$
字符串结束
看到一个regex demo。