字符集 [ ] 中的正则表达式捕获组 ( )

M3R*_*3RS 5 regex

我想匹配空格字符 ( ) 仅当它们后跟哈希 ( #) 时。

这就是( #)下面试图做的,这是一个捕获组。(我尝试转义括号,否则在组集中无法正确识别括号)。但是,这是行不通的。

下面的正则表达式

/#[a-zA-Z\( #\)]+/g
Run Code Online (Sandbox Code Playgroud)

符合以下所有条件

#CincoDeMayo #Derby party with UNLIMITED #seafood towers
Run Code Online (Sandbox Code Playgroud)

虽然我想匹配#CincoDeMayo #Derby和分开#seafood

有没有办法()在字符集中指定捕获组[]

Wik*_*żew 5

字符类旨在匹配单个字符,因此,不可能在字符类中定义字符序列

我认为您想匹配特定的连续主题标签。用

/#[a-zA-Z]+(?: +#[a-zA-Z]+)*/g
Run Code Online (Sandbox Code Playgroud)

或者

/#[a-zA-Z]+(?:\s+#[a-zA-Z]+)*/g
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示

细节

  • #[a-zA-Z]+-#后跟 1+ 个 ASCII 字母
  • (?: - 非捕获组的开始...
    • \s+ - 1+ 个空格
    • #[a-zA-Z]+-#后跟 1+ 个 ASCII 字母
  • )* - ...重复0次或更多次。