我有以下文字,我需要正则表达式返回多个组而不仅仅是第一个匹配...我尝试的所有内容总是只返回第一个组......
\[\s*(?<g1>(?i:Critical|Urgent)):\s*(?<g2>.+)\]
示例:
lorem ipsum [Urgent: do something] lorem ipsum [Critical: do something else] lorem ipsum
理想情况下,g1会包含['Urgent','Critical']而g2会包含['做某事','做别的事']
答案 0 :(得分:0)
This regex将有两个匹配,每个匹配两个组。
\[(Critical|Urgent):\s?(.*?)\]
使用http://regexr.com/,您可以在线测试正则表达式。它非常适合学习为什么他们不能工作,因为你可以将光标放在正则表达式的每个部分上,看看它的作用。