我一直在谷歌搜索并查看堆栈溢出提供的推荐问题。但是,我没有找到答案。
我想使用正则表达式解析字符串,字符串的示例是
Lot: He said: Thou shalt not pass!
我想将Lot
作为一个群体和He said: Thou shalt not pass!
进行捕捉。但是,当我使用(.+): (.+)
模式时,它会返回
Lot: He said:
和Thou shalt not pass!
是否可以使用正则表达式捕获He said: Thou shalt not pass
答案 0 :(得分:19)
第一组你需要一个非贪婪(或懒惰)的基数:(.+?): (.+)
。
关于http://www.regular-expressions.info/repeat.html的更多细节,“懒惰而非贪婪”一章。
答案 1 :(得分:4)
尝试一下:
([^:]+):\s*(.*)
答案 2 :(得分:2)
答案 3 :(得分:1)
以下内容有效。
([^:]+): (.+)
答案 4 :(得分:1)
你应该使用标志ig - i =不区分大小写,g =在第一次匹配后不返回,并且表达式如“(。 :)?(。:。*)”。< / p>
你可以在这里看到例子 https://regex101.com/r/SXjg1b/1