0

我正在尝试将字段密码的值与 PCRE 正则表达式(用于 ModSecurity)进行匹配。

示例输入字符串:

{"username":"someuser","password":"$VS*'egrE"^87Me?.?vIiJ`+"}"}}"}"}

预期匹配:

$VS*'egrE"^87Me?.?vIiJ`+"}"}}"}

我损坏的 PCRE 正则表达式(它匹配两个组,而不仅仅是我想要的部分):

^\{(?:.*)"password":"(.*?)\"\}$

正则表达式可视化

调试演示

还是我完全错了并且匹配正确?

4

1 回答 1

1

密码应该在哪里结束?您的示例对我来说看起来像一个 JSON 对象,但是您必须确保其中没有未转义"的对象,这在您的示例中就是这种情况。

您的正则表达式匹配所有内容,直到"}您期望它匹配的最后一个。

如果您只想匹配password属性的值,您可以简单地使用: ^.*"password":"([^"]*)".*$

但请记住,这只有"在您的密码中没有密码时才有效!

于 2013-10-09T14:15:08.067 回答