我要替换^
以下字符串中的:
var string = 'I\'M SORRY,”^ mutters a strangely familiar voice.'
我正在这样做:
string.replace(/\b\^|(\.|\,|\?|\!|---|\.\.\.\s)\^|(["]|”)\^/g, '$1</b>')
但我删除了”
:
I'M SORRY,</b> mutters a strangely familiar voice.
我想写这就是:更换^
为</b>
当它是一个后"
或”
。
我也尝试这样做:
string.replace(/\b\^|(\.|\,|\?|\!|---|\.\.\.\s)\^|(?=(["]|”))\^/g, '$1</b>')
但是^
不会被替换:
I'M SORRY,”^ mutters a strangely familiar voice.
正确的做法是什么?
您正在使用反向引用将捕获的零件保留在结果中。
您的正则表达式有2个捕获组:
/\b\^|([.,?!]|---|\.{3}\s)\^|("|”)\^/g
|------1-----------| |----2----|
因此,要保留这两个捕获的零件,您需要添加$1
并 添加$2
到替换模式:
"$1$2</b>"
另外,请注意,["]
它等于"
并且(\.|\,|\?|\!|---|\.\.\.\s)
缩短为([.,?!]|---|\.{3}\s)
(这样,您也将避免溢出)。
另外,请注意,分支仅在捕获组方面有所不同,它们都以\^
模式结尾。因此,您可以将分支合并为一个:
/(\b|[.,?!"]|---|”|\.{3}\s)\^/g
然后替换为您拥有的内容"$1</b>"
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句