在正则表达式中,我可以用*
匹配零个或多个出现,而用{7,50}
可以匹配7至50个出现。如何在7至50次匹配中匹配any零or?
将范围匹配分组并使其与?
可选(匹配0或1个实例)。
Python,因为未指定语言:
>>> import re
>>> test = 'abaxbaxxxxxxbaxxxxxxxbaxxxxxxxxb'
>>> re.findall('a(?:x{7,50})?b',test)
['ab', 'axxxxxxxb', 'axxxxxxxxb']
a
。(?:n)
匹配n
,但不进行捕获分组。(?:x{7,50})
组与7-50次出现的x
相匹配。(?:x{7,50})?
使其为可选(出现0或1)b
没有不参与的团体:
>>> re.findall('a(x{7,50})?b',test)
['', 'xxxxxxx', 'xxxxxxxx']
[在https://regex101.com/r/qkziuu/1中查看有效示例