Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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正则表达式字符串替换多行字符串_Javascript_Regex_Replace_Multiline - Fatal编程技术网

Javascript正则表达式字符串替换多行字符串

Javascript正则表达式字符串替换多行字符串,javascript,regex,replace,multiline,Javascript,Regex,Replace,Multiline,使用JavaScript正则表达式替换,尝试替换和标记之间的任何内容,以便: <head> Multiline foo </head> <body> Multi line bar </body> 多行foo 多线棒 替换为: <body> Multi line bar </body> 多线棒 并尝试使用非常基本的:/m,但它不起作用。当从字符串中删除换行符时,它可以正常工作。无论什么类型的换行符,有

使用JavaScript正则表达式替换,尝试替换
标记之间的任何内容,以便:

<head>
   Multiline foo
</head>
<body>
  Multi line bar
</body>

多行foo
多线棒
替换为:

<body>
  Multi line bar
</body>

多线棒

并尝试使用非常基本的:
/m
,但它不起作用。当从字符串中删除换行符时,它可以正常工作。无论什么类型的换行符,有什么神奇之处?

问题在于点元字符与换行符不匹配。在大多数正则表达式风格中,您可以通过设置“DOTALL”或“单行”模式来强制它匹配所有内容,但JavaScript不支持这一点。相反,您必须将点替换为与所有内容匹配的内容。最常见的习惯用法是
[\s\s]
(“任何空白字符或任何非空白字符”)。

艾伦是对的,总结一下,使用
/
,它应该可以做你想做的事


我将在作业中使用的实际正则表达式是
/([\s\s]*?)/
,但差异可能无关紧要,因为它只是确保不会有贪婪的匹配,第二个头标记不应该存在:)

您还有
[\d\d]
[\w\w]
:Dsee