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

如何用JavaScript正则在孤立IPA字符后添加ɨ?正则修正需求

修正正则表达式实现IPA字符的指定替换需求

需求说明

当tʂ、tʂ'、ʂ、ʐ、ts、ts'、s这些IPA字符孤立出现(不与其他IPA字符相邻)时,在其右侧、数字之前添加字符ɨ,注意目标字符后均带有数字,且每行内容被/包裹。

原始代码

const input = `/ʊɔ3 yɛn2 tʂ2 tʂɑʊ3/
/ʊɔ3 mən5 tɕ'ʂ2 tʂɑʊ3/
/pu2 ʂ4 tʂə4 kə4/
/ʂ1/`

const output = input.replace(/(\/|[ ])(tʂ|tʂ\'|ʂ|ʐ|ts|ts\'|s)\d([ ]|\/)/g, '$&ɨ')
console.log(output)

当前输出

/ʊɔ3 yɛn2 tʂ2 ɨtʂɑʊ3/
/ʊɔ3 mən5 tɕ'ʂ2 tʂɑʊ3/
/pu2 ʂ4 ɨtʂə4 kə4/
/ʂ1/ɨ

期望输出

/ʊɔ3 yɛn2 tʂɨ2 tʂɑʊ3/
/ʊɔ3 mən5 tɕ'ʂ2 tʂɑʊ3/
/pu2 ʂɨ4 tʂə4 kə4/
/ʂɨ1/

修正方案

原正则的问题在于将目标字符+数字作为整体匹配后,把ɨ追加到了整个匹配串末尾,导致位置错误且边界处理异常。修正后的正则会拆分捕获目标字符和数字,将ɨ插入到两者之间:

const input = `/ʊɔ3 yɛn2 tʂ2 tʂɑʊ3/
/ʊɔ3 mən5 tɕ'ʂ2 tʂɑʊ3/
/pu2 ʂ4 tʂə4 kə4/
/ʂ1/`

const output = input.replace(/(\/|\s)(tʂ|tʂ'|ʂ|ʐ|ts|ts'|s)(\d)(\s|\/)/g, '$1$2ɨ$3$4')
console.log(output)

正则说明

  • (\/|\s):捕获前边界,匹配/或空格,确保目标字符是孤立的开头
  • (tʂ|tʂ'|ʂ|ʐ|ts|ts'|s):捕获需要处理的IPA目标字符
  • (\d):捕获目标字符后的数字
  • (\s|\/):捕获后边界,匹配空格或/,确保目标字符后无其他IPA部件
  • 替换串$1$2ɨ$3$4:将捕获的前边界、目标字符、插入的ɨ、数字、后边界拼接,实现字符+ɨ+数字的正确格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:30:50