当前位置: 首页 > 知识库问答 >
问题:

正则表达式仅捕获第一个匹配项 [重复]

楚灿
2023-03-14

我想用正则表达式解析一个字符串,字符串的例子是

罗得:他说:你不能通过

我想将Lot作为一个组捕获,并且他说:你不应该通过!。然而,当我使用我的(. ): (. )模式时,它返回

Lot:他说:你不应该通过!

他说:你不应该使用正则表达式传递吗?

共有3个答案

皮景龙
2023-03-14
(?=.*?:.*?:)(.*?):(.*)

你可以用这个。

请参见演示。

http://regex101.com/r/rX0dM7/9

夹谷宜民
2023-03-14

试试这个:

([^:]+):\s*(.*)
郤望
2023-03-14

第一组需要一个非贪婪(或懒惰)的基数:< code >(。?): (.)。

关于http://www.regular-expressions.info/repeat.html的更多细节,章节“懒惰而不是贪婪”。

 类似资料:
  • 我有一根这样的绳子 余额:“5048543747”,余额:“5119341413”,帐号:“0001000918”, 我使用了REGEX (.*?), 结果我收到的第一个子字符串是 余额:“5048543747” 实际上,我想要得到的结果是数组包括 { 余额:“5048543747” Baldefovd:“5119341413” 账号:“0001000918” } 有人能帮我吗。多谢。 编辑 我使

  • 你好,我在Java中使用正则表达式时遇到了一个问题。 我试图解析这个: 使用此代码(模式匹配器) 我的问题是,我的regexp只返回模式的第一次出现,即使我有一段时间(matcher.find())。。

  • 我在一个c程序中有以下文本字符串和regex模式: 多谢了。

  • 根据下面的示例,我有一个正则表达式模式。 但是,作为一个一次性的派生,如果只有一个模式(匹配第一个实例的空白行&模式上方的一个空格),我可以让下面的内容匹配。 http://regex101.com/r/ey0ic7 但是,如果模式位于第一行,则没有匹配。

  • 我一直在研究requirement,需要在以下字符串上创建正则表达式: 该字符串可以有以下多种变体: 在上面的表达式中是一个键名,可以是endDate、updateDate等。这意味着我们不能在表达式中硬编码它。尽管 我使用以下编译模式 模式匹配,但创建的组不是我期望的。我希望下面用括号包围该组: 你能帮我在Java和小组中正确表达吗?

  • 问题内容: 我试图创建下面的正则表达式:返回之间的字符串和(或或)从下列字符串RNA: ,让所有的比赛会被发现,包括重叠的。 我尝试了几种正则表达式,最后得到了类似的结果: 您能告诉我我的正则表达式模式中的错误吗? 问题答案: 用一个正则表达式执行此操作实际上是非常困难的,因为大多数用法 都不 希望重叠匹配。但是,您可以通过一些简单的迭代来做到这一点: 虽然,这有一些问题。您希望得到的回报是什么?