在不使用环视条件的情况下在两组字符之间匹配字符串

时间:2019-06-07 16:53:51

标签: regex regex-group regex-greedy

我一直在研究一些正则表达式,以尝试在两个字符之间匹配整个字符串。我试图捕获从“系统”到“ prod_rx”的所有内容。 (我希望在我的比赛中包括这两个字符串)。以下是我正在使用的全文:

\"alert_id\":\"123456\",\"severity\":\"medium\",\"summary\":\"System generated a Medium severity alert\\\\prod_rx.\",\"title\":\"123456-test_alert\",

我现在正在使用的正则表达式是...:

(?<=summary\\":\\").*?(?=\\")

当我能够使用环视功能时(例如在Regex101中:https://regex101.com/r/jXltNZ/1),此功能非常理想。但是,我公司使用的软件中的正则表达式解析器不支持环视功能(疯狂吧?)。

无论如何-我的问题基本上是如何不使用前行/后行匹配上述文字。任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:1)

好吧,我们可以简单地使用其他非环视方法,例如以下简单表达式:

.+summary\\":\\"(.+)\\",

并且我们的数据在该捕获组中:

(.+)

我们的右边界是:

\\",

我们的左边界是:

.+summary\\":\\"

Demo