我想匹配空格字符 ( ) 仅当它们后跟哈希 ( #) 时。
这就是( #)下面试图做的,这是一个捕获组。(我尝试转义括号,否则在组集中无法正确识别括号)。但是,这是行不通的。
下面的正则表达式
/#[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
有没有办法()在字符集中指定捕获组[]?
字符类旨在匹配单个字符,因此,不可能在字符类中定义字符序列。
我认为您想匹配特定的连续主题标签。用
/#[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次或更多次。