1
在下面的字符串的支架:替换匹配的标准
(my name is zeeze :) and I am very happy ;))
我需要更换所有的)
与__BR__
是由正则表达式满足图案的一部分:
[8|:|;|\*]{1}[-c^;\*]?\)
参考: Regex playground
我不能代替结尾)
,因为它不是模式的一部分。
有什么办法可以做到这一点?
在下面的字符串的支架:替换匹配的标准
(my name is zeeze :) and I am very happy ;))
我需要更换所有的)
与__BR__
是由正则表达式满足图案的一部分:
[8|:|;|\*]{1}[-c^;\*]?\)
参考: Regex playground
我不能代替结尾)
,因为它不是模式的一部分。
有什么办法可以做到这一点?
你可以做到这一点的回调方法:
var s = "(my name is zeeze :) and I am very happy ;))";
console.log(
s.replace(/[8:;*][-c^;*]?\)/g, function($0) {
return $0.replace(/\)/g, "__BR__")
})
)
// => (my name is zeeze :__BR__ and I am very happy ;__BR__)
注意|
字符类[8|:|;|\*]
内作为文字|
管道符号进行处理,因此,我认为这是一个人错误。 {1}
是多余的,因为一个原子默认匹配一次。在字符类中没有必要转义字符*
,它在那里被解析为文字星号。