如何创建匹配0次出现或7至50次出现的正则表达式?

问题描述 投票:0回答:1

在正则表达式中,我可以用*匹配零个或多个出现,而用{7,50}可以匹配7至50个出现。如何在7至50次匹配中匹配anyor

regex quantifiers
1个回答
3
投票

将范围匹配分组并使其与?可选(匹配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中查看有效示例


0
投票

您可以使用此regex

(\S{7,50})?

[\S{7,50}表示出现7至50的非空白字符

[(\S{7,50})?表示\S{7,50}出现0或1次>

© www.soinside.com 2019 - 2024. All rights reserved.