在 Charles 代理中,我尝试使用重写规则来匹配跨越响应主体中的三行的模式,并使用\s*
匹配值(选中“Regex”)来匹配新行。
Charles 似乎无法匹配多行模式,但我无法在 Charles 文档中确认这一点。有人能以某种方式确认 Charles 重写规则是否可以匹配多行模式吗?
答案1
我不知道您是否可以通用地做到这一点,但我想出了适用于特定换行符情况的办法:
"group":.*[\n\r]*.*".*"
简而言之,如果您在字符类中明确标记换行符,则可以在模式中使用换行符。通配符匹配器喜欢.
,缓冲区边界喜欢^
但$
不喜欢。
答案2
可以通过以下方式在 Charles 中完成多行搜索:
[\s\S]*
例如,假设有一个 xml 文档,我想从 knownNodeName 开始搜索,并继续搜索,直到在 knownNodeName 下方 n 行找到 @knownAttribute
Charles 中的正则表达式模式为:
knownNodeName>[\s\S]*knownAttributeNLineBelow
这有效!
如果你想让它稍微复杂一点,实际上从属性中捕获一些东西并将其重新插入到文档中(这是我的最终目标),你可以在 Charles 中通过以下步骤来实现:
匹配值:knownNodeName>([\s\S]*knownAttributeNLineBelow=")(\w+)
替换值:
knownNodeName> newNode @attr=$2 />$1$2