在正则表达式中查找字符或序列

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

我正在尝试编写一个检测文本中多个模式的正则表达式,其中包含多个空格的序列。我正在做这样的事情:

/[abc( {2,})]/

但它似乎也检测到单一空间。我究竟做错了什么?

javascript regex
1个回答
3
投票

[abc( {2,})]模式是一个字符类(或其他术语中的括号表达),匹配单个char,abc(,space,{2,})。您无法在字符类中定义char序列。

你可以用

[abc]| {2,}

或者,要匹配任何2个或更多的空格,请使用

[abc]|\s{2,}

| alternation operator用于分隔两个替代方案:

  • [abc] - 与单个字符匹配的字符类(括号表达式),abc
  • | - 或
  • {2,} - 两个或更多空格。

注意:每当你想在更长的模式中使用这个交替时,最好用group包装它,这样它就不会“破坏”整个正则表达式:

([abc]| {2,})

或者,如果您不需要访问使用这些模式捕获的值,请使用non-capturing group

(?:[abc]| {2,})
© www.soinside.com 2019 - 2024. All rights reserved.