Regex 简化正则表达式-多个离散选项
Regex 简化正则表达式-多个离散选项,regex,Regex,基本上,是否有任何方法可以缩短/简化上述步骤?是否有一种方法可以在这些花括号中表示多个离散数字计数,而不是单个连续范围?似乎您希望将偶数个数字匹配n次 您可以将\d{2}子模式分组,并对其应用限制量词: ^(\d{2}|\d{4}|\d{6}|\d{8})N 看 详情: ^-字符串的开头 (?:\d{2}{1,4}-1至4(4可根据需要调整)两位数序列 $-字符串的结尾(如果您只需要在字符串的开头进行匹配,则可以删除此锚定) 可能?它与原始字符串不匹配。它应该是^(?:\d{2}{1,4}N
基本上,是否有任何方法可以缩短/简化上述步骤?是否有一种方法可以在这些花括号中表示多个离散数字计数,而不是单个连续范围?似乎您希望将偶数个数字匹配n次 您可以将
\d{2}
子模式分组,并对其应用限制量词:
^(\d{2}|\d{4}|\d{6}|\d{8})N
看
详情:
-字符串的开头^
-1至4((?:\d{2}{1,4}
可根据需要调整)两位数序列4
-字符串的结尾(如果您只需要在字符串的开头进行匹配,则可以删除此锚定)$
^(?:\d{2}{1,4}N
@wdosanjos:我几乎可以肯定N
代表某种“神奇”数字,它将量化原始的交替序列。无论如何,我在解释中添加了注释,以便可以根据任何特定的要求调整模式。我知道这对于示例中的数字的模式数字是如何工作的,因此我可能会接受这个答案。然而,是否有一种方法可以应用于不太一致的离散数字量?疯狂的例子:位数必须是(有限集合的)素数?(2,3,5,7,11,13,17)如果不能使用限制量词,则必须使用嵌套可选组(例如,可读性较差的版本)或详细组。在regex的世界里,别无选择。
^(?:\d{2}){1,4}$