我想替换第n次发生时,字符串有多行使用Javascript,我尝试了各种方法从以前的答案,但没有一个是工作时,有换行在字符串
例如:
var someString="I have a cat, my cat is intelligent,n my cat is very active";
someString= someString.replace(RegExp("^(?:.*?my cat){2}"), function(x){return x.replace(RegExp("my cat$"), 'our cat abc')});
console.log(someString);
我希望我的输出是:
I have a cat, my cat is intelligent,
our cat abc is very active
相反,它打印的是相同的字符串:
I have a cat, my cat is intelligent,
my cat is very active
是否有一种方法来替换多行字符串中的第n次出现,如使用Javascript
提前感谢。
您的正则表达式不匹配。.
将不匹配换行符,所以我将使用(?:.|n)
代替。
var someString="I have a cat, my cat is intelligent,n my cat is very active";
someString= someString.replace(new RegExp("(?:(?:.|n)*?my cat){2}"), function(x){return x.replace(RegExp("my cat$"), 'our cat abc')});
console.log(someString);
或者使用" "(单行)修饰语
var someString="I have a cat, my cat is intelligent,n my cat is very active";
someString= someString.replace(new RegExp("(?:.*?my cat){2}", "s"), function(x){return x.replace(RegExp("my cat$"), 'our cat abc')});
console.log(someString);