Javascript 用Google脚本替换第n次出现的不起作用的特殊字符正则表达式
我试图用以下函数替换字符的第n次出现 它适用于字符串,但我想替换Javascript 用Google脚本替换第n次出现的不起作用的特殊字符正则表达式,javascript,regex,google-apps-script,Javascript,Regex,Google Apps Script,我试图用以下函数替换字符的第n次出现 它适用于字符串,但我想替换[WORLD!]HELLO[WORLD!] 我正在尝试模式/.\\[/,它在RerEx tester中工作,但在我的函数中不工作。我没有得到错误,只是没有替换 谢谢 function ReplaceNth_n() { Logger.log(ReplaceNth("[WORLD!] HELLO, [WORLD!]", "/.\\[/", "M", 2)) } function ReplaceNth(strSearch,sea
[WORLD!]HELLO[WORLD!]
我正在尝试模式/.\\[/
,它在RerEx tester中工作,但在我的函数中不工作。我没有得到错误,只是没有替换
谢谢
function ReplaceNth_n() {
Logger.log(ReplaceNth("[WORLD!] HELLO, [WORLD!]", "/.\\[/", "M", 2))
}
function ReplaceNth(strSearch,search_for, replace_with, Ocur) {
var nth = 0;
strSearch = strSearch.replace(new RegExp(search_for, 'g'), function (match, i, original) {
nth++;
return (nth === Ocur) ? replace_with : match;
});
return strSearch
}
使用
RegExp
创建正则表达式时,不应该在字符串中包含开头和结尾/
,我也不明白为什么要在那里添加
- 错误:
newregexp(“/test/”);
- 正确:
新的RegExp(“测试”);
search\u for
参数传递的字符串应该是第n次出现的\\[
^([^<char>]*(?:<char>[^<char>]*){<N-1>})<char>
如果要找到
char
和N>0
而不是新的RegExp
和“/。\\[/”
只需使用/\[/
。不过,我不确定你是否想要图案中的圆点。如果你打算否决我的问题,那么就说问题出在哪里,否则你只是作为一个成功的首席执行官,谢谢你。
之所以出现,是因为我对RegEx非常陌生,而且confused@xyz-那不是你的问题吗,第n次?
regexStr = '^([^' + char + ']*(?:' + char + '[^' + char + ']*){' + (N-1) + '})' + char;