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

Matching a string between two sets of characters without using lookarounds

我一直在研究一些正则表达式来尝试匹配两个字符之间的整个字符串。我正在尝试捕获从 "System" 一直到 "prod_rx." 的所有内容(我希望在匹配中包含这两个字符串)。以下是我正在处理的全文:

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

我现在使用的正则表达式是...:[=​​13=]

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

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

无论如何 - 我的问题基本上是如何在不使用 lookaheads/lookbehinds 的情况下匹配上面描述的文本。非常感谢任何帮助!!

好吧,我们可以简单地使用其他non-lookaround方法,比如这个简单的表达式:

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

我们的数据在这个捕获组中:

(.+)

我们的右边界是:

\",

我们的左边界是:

.+summary\":\"

Demo