我正在尝试编写一个检测文本中多个模式的正则表达式,其中包含多个空格的序列。我正在做这样的事情:
/[abc( {2,})]/
但它似乎也检测到单一空间。我究竟做错了什么?
[abc( {2,})]
模式是一个字符类(或其他术语中的括号表达),匹配单个char,a
,b
,c
,(
,space,{
,2
,,
,}
或)
。您无法在字符类中定义char序列。
你可以用
[abc]| {2,}
或者,要匹配任何2个或更多的空格,请使用
[abc]|\s{2,}
|
alternation operator用于分隔两个替代方案:
[abc]
- 与单个字符匹配的字符类(括号表达式),a
,b
或c
|
- 或 {2,}
- 两个或更多空格。注意:每当你想在更长的模式中使用这个交替时,最好用group包装它,这样它就不会“破坏”整个正则表达式:
([abc]| {2,})
或者,如果您不需要访问使用这些模式捕获的值,请使用non-capturing group:
(?:[abc]| {2,})