You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取正则的反向匹配,以选中引号外内容用于preg_replace

反向匹配正则实现方案

要实现你需要的反向匹配(选中原正则未覆盖的引号外区域,排除.replace()第一个参数和引号内内容),只需调整原正则的逻辑:将无需替换的内容标记为跳过,匹配剩余所有目标区域。

最终正则

(\(\s*/.*?/\w*\h*,|(?|(")[^"\\]*(?:\\.[^"\\]*)*"|(')[^'\\]*(?:\\.[^'\\]*)*'))(*SKIP)(*F)|.

逻辑说明

  • 分组内包含两类需排除的内容:
    • \(\s*/.*?/\w*\h*,:匹配.replace(/'/g, ...)这类调用中的第一个参数部分
    • 单/双引号内的文本(含转义引号处理):(?|(")[^"\\]*(?:\\.[^"\\]*)*"|(')[^'\\]*(?:\\.[^'\\]*)*')
  • (*SKIP)(*F):标记上述内容为跳过项,不参与替换
  • |.:匹配所有未被跳过的单个字符,即你需要替换的引号外区域

使用preg_replace时,该正则匹配到的内容就是引号外的目标区域,直接替换为你需要的内容即可。

内容的提问来源于stack exchange,提问作者abe1432181

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:20:29