在 Charles 代理重写规则中匹配多行模式

在 Charles 代理重写规则中匹配多行模式

在 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

相关内容