regex - 将JSON值与带有 PCRE 正规表达式的特殊字符匹配

  显示原文与译文双语对照的内容
108 5

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

示例输入字符串:


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

预期匹配:


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

我的PCRE 正规表达式 ( 它匹配两个组而不只是我想要的部分):


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

Regular expression visualization

Debuggex演示插件

或者我完全错了而且匹配正确?

时间: 原作者:

110 5

密码应该在哪里结束? 你的示例看起来像一个JSON对象,但是你必须确保不存在任何转义的",例如。

你的正规表达式 匹配所有的东西直到最后一个 "},你期望它匹配。

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

记住,只有在密码中没有 "的情况下,这才有效 !

原作者:
...