如何创建匹配 0 次出现或 7 到 50 次出现的正则表达式?
How to create a regex that matches either 0 occurrences, or between 7 and 50 occurrences?
在正则表达式中,我可以用 *
匹配零个或多个匹配项,用 {7,50}
匹配 7 到 50 个匹配项。如何在 7 到 50 次之间匹配 零 或 ?
将范围匹配分组并使其成为可选 ?
(匹配 0 或 1 个实例)。
Python,因为未指定语言:
>>> import re
>>> test = 'abaxbaxxxxxxbaxxxxxxxbaxxxxxxxxb'
>>> re.findall('a(?:x{7,50})?b',test)
['ab', 'axxxxxxxb', 'axxxxxxxxb']
- 匹配
a
.
(?:n)
匹配 n
但不捕获 group.grouping.
(?:x{7,50})
组匹配 x
. 的 7-50 次出现
(?:x{7,50})?
使其可选(出现 0 次或 1 次)
- 匹配
b
没有非捕获组你会得到:
>>> re.findall('a(x{7,50})?b',test)
['', 'xxxxxxx', 'xxxxxxxx']
你可以使用这个regex
(\S{7,50})?
\S{7,50}
表示非空白字符出现 7 到 50 次
(\S{7,50})?
表示出现 0 次或 1 次 \S{7,50}
在正则表达式中,我可以用 *
匹配零个或多个匹配项,用 {7,50}
匹配 7 到 50 个匹配项。如何在 7 到 50 次之间匹配 零 或 ?
将范围匹配分组并使其成为可选 ?
(匹配 0 或 1 个实例)。
Python,因为未指定语言:
>>> import re
>>> test = 'abaxbaxxxxxxbaxxxxxxxbaxxxxxxxxb'
>>> re.findall('a(?:x{7,50})?b',test)
['ab', 'axxxxxxxb', 'axxxxxxxxb']
- 匹配
a
. (?:n)
匹配n
但不捕获 group.grouping.(?:x{7,50})
组匹配x
. 的 7-50 次出现
(?:x{7,50})?
使其可选(出现 0 次或 1 次)- 匹配
b
没有非捕获组你会得到:
>>> re.findall('a(x{7,50})?b',test)
['', 'xxxxxxx', 'xxxxxxxx']
你可以使用这个regex
(\S{7,50})?
\S{7,50}
表示非空白字符出现 7 到 50 次
(\S{7,50})?
表示出现 0 次或 1 次 \S{7,50}