Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在3个不同字符串之后和双引号之间替换字符串_Javascript_Regex_String_Replace - Fatal编程技术网

Javascript 在3个不同字符串之后和双引号之间替换字符串

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

我需要你再帮我做一个正则表达式

我有这个字符串:

一些绳子

文本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/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);