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

如何用正则表达式匹配JSON中pinyin字段值内的单引号字符

正则调整方案

原正则失效原因

你写的正则存在两个核心问题:

  • 绝大多数正则引擎(比如JavaScript、Python标准re库、Go正则库等)不支持不定长度的后行断言,原正则中(?<="pinyin": "\w*)内的\w*长度不固定,会直接触发语法错误或匹配失效
  • 原正则用\w匹配pinyin字段的内容,而\w仅能匹配字母、数字、下划线,无法匹配你示例中bei1后面的空格,导致后视范围根本覆盖不到单引号的前置位置

可用方案

方案1:支持可变长度后行的引擎适用(.NET、Java 9+、Python regex第三方库等)

直接修正后行匹配规则即可,写法如下:

(?<="pinyin": "[^"]*?)'(?!")

说明:

  • 用[^"]*?非贪婪匹配pinyin双引号包裹的字段值中,单引号之前的所有内容,不受字符类型限制
  • 后面的(?!")确保匹配的不是字段末尾双引号前的字符,精准匹配字段中间的单引号

方案2:全引擎兼容写法(无后行断言依赖)

如果用的正则引擎不支持可变长度后行,用捕获组提取目标单引号即可,写法如下:

"pinyin": "[^"]*?(')[^"]*"

匹配后取第1个捕获组的内容,就是你需要的单引号字符。

测试验证

针对你提供的示例字符串"pinyin": "bei1 'ai1",,上述两种方案都可以精准匹配到ai1前面的单引号'。

内容的提问来源于stack exchange,提问作者João Pedro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:24:05