正则表达式 - 匹配

时间:2017-02-02 13:39:07

标签: regex

是否可以使用ONLY regex在完全匹配中找到多个匹配组?

鉴于以下文字

  

{1234} Lorem ipsum dolor坐下来,精神上的精神。 ** Sed   iaculis nisi et dapibus consectetur。 Vestibulum ** feugiat sapien,sed   sagittis magna。 Phasellus euismod tempor augue,** eget dictum mi   sagittis坐下来。 Quisque坐在amet diam vel magna imperdiet pulvinar   vel ac lectus。 {4321} Lorem ipsum ....

我试图将数字中所有出现的**分组。

我想出了以下内容:

\{\d+\}.+?(\*\*)+.+\{\d.+\}

https://regex101.com/r/s746be/2

你可以看到它只会因为懒惰的问号而对第一组进行分组,如果我删除了问号,则只对最后一组进行分组。

1 个答案:

答案 0 :(得分:0)

为什么不把它分解为几个简单的步骤,而不是使用一个非常低效的Regex?

您可以尝试这样做:

1)使用这样的简单正则表达式在{1234}{4321}之间抓取文字:

/\{\d+\}(.*?)\{\d+\}/

2)在这两个分隔符之间提取匹配的文本 3)使用简单的正则表达式模式对这个匹配的内部文本运行第二次全局正则表达式搜索:

/\*\*/g

希望这有帮助