Javascript 在3个不同字符串之后和双引号之间替换字符串
我需要你再帮我做一个正则表达式 我有这个字符串: 一些绳子 文本1 name=“yyy”,path=“C:/asdf/qwer.jpg”type=“jjj” 文本2 name=“3yu”,path=“C:/asdf/12t2.mov”type=“uuu” 到目前为止,我有一个正则表达式:Javascript 在3个不同字符串之后和双引号之间替换字符串,javascript,regex,string,replace,Javascript,Regex,String,Replace,我需要你再帮我做一个正则表达式 我有这个字符串: 一些绳子 文本1 name=“yyy”,path=“C:/asdf/qwer.jpg”type=“jjj” 文本2 name=“3yu”,path=“C:/asdf/12t2.mov”type=“uuu” 到目前为止,我有一个正则表达式: /\b(string\b(.|\n)*?)\btext1\b/ 现在,我需要替换text1的路径,以便输出为: 一些绳子 文本1 name=“yyy”,path=“D:/here/is/my/other/pa
/\b(string\b(.|\n)*?)\btext1\b/
现在,我需要替换text1
的路径,以便输出为:
一些绳子
文本1
name=“yyy”,path=“D:/here/is/my/other/path.png”type=“jjj”
文本2
name=“3yu”,path=“C:/asdf/12t2.mov”type=“uuu”
我知道我也需要使用这个(lmk,如果我错了,还有什么更好使用?):
或:
但是我如何告诉它按照我的需要进行替换?您可以这样替换该字符串:
var re=/(字符串[\s\s]*?text1[\s\s]*?\bpath=“)[^”]+/;
var str='some string\n\ntext1\n\nname=“yyy”,path=“C:/asdf/qwer.jpg”type=“jjj”\n\ntext2\n\nname=“3yu”,path=“C:/asdf/12t2.mov”type=“uuu”;
var subst='$1D:/here/is/my/other/path.png';
文件.写入(str.replace(re,subst).replace(/\n/g,“
”)代码>
您可以使用它。替换为$1mypath
。请参阅演示
什么是语言?它可以工作,但有时我需要它来替换正则表达式匹配'string'之后的路径,然后是'text2',然后是路径..我更新了代码并添加了解释。请注意,由于JavaScript中没有使点匹配换行符的s
修饰符,因此我们必须使用[\s]
或[^]
@Ziki,如果text1
中没有路径
,那么这将替换text1
的路径
/".*?"/
/"[^"]*"/
(\bstring\b[\s\S]*?\btext1\b(?:(?!\btext\d+\b)[\s\S])*path=")[^"]*
var re = /(\bstring\b[\s\S]*?\btext1\b(?:(?!\btext\d+\b)[\s\S])*path=")[^"]*/g;
var str = 'some string\n\n text1\n\n name="yyy", path="C:/asdf/qwer.jpg" type="jjj"\n\n text2\n\n name="3yu", path="C:/asdf/12t2.mov" type="uuu"\n';
var subst = ' $1mypath';
var result = str.replace(re, subst);