【发布时间】:2018-02-16 22:29:00
【问题描述】:
我想进行分组以选择特定字符之前和之后的字符串,在本例中是冒号。
例子:
First: foo Last: bar
我想匹配第 1 组中的 First 和 foo 以及第 2 组中的 Last bar
组 1:First foo
第二组:Last bar
我现在有
([^:]*)+([^:*])
它只匹配所有不是冒号的东西,这不是我要找的东西。我可以在某个字符之前和之后匹配正则表达式的哪些方式或模式?
【问题讨论】:
-
@WiktorStribiżew 使用非捕获组来获得所需的匹配可能会稍微好一些:
(?:[^:]+):\s*(.*?)(?=\w+:|$) -
如果你想将它们归为一组,恐怕你将不得不使用
replace -
@Tibrogargan 好吧,我不太确定所需的输出。看起来第 1 组应该是
First foo,这是不可能的,因为文本不连续。请参阅this JSFiddle,您仍然可以使用上面的正则表达式,但将这些组加入到一起。 -
你忘了在你的
regex中输入那个“特定的字符”。
标签: javascript regex performance