Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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 - Fatal编程技术网

跨换行符的Javascript正则表达式多重匹配

跨换行符的Javascript正则表达式多重匹配,javascript,regex,Javascript,Regex,我仍然在努力学习如何使用Javascript处理正则表达式。我正在尝试创建一个降价转换器,该转换器将进行如下转换: (/^\>([\s\S]*?)(?=\>|\n\n)/gm >此文本应匹配-->此文本应匹配 我已经记下来了,但我正试图让它更复杂,如下所示: > this is a match > so is this, but should be in the same match as above > this should be a seperate ma

我仍然在努力学习如何使用Javascript处理正则表达式。我正在尝试创建一个降价转换器,该转换器将进行如下转换:

(/^\>([\s\S]*?)(?=\>|\n\n)/gm
>此文本应匹配
-->
此文本应匹配

我已经记下来了,但我正试图让它更复杂,如下所示:

> this is a match
> so is this, but should be in the same match as above

> this should be a seperate match > this is nothing
将等于:

这是一个匹配,这也是一个匹配,但应该与上面的匹配相同
这应该是一个单独的匹配>这没什么
但我遇到的问题是,使用我目前拥有的正则表达式(
/^\>(.*?(=\>\n\n)/gm
),它将前两个作为单独的匹配项

请参见我的示例:


任何帮助都会很好,谢谢。

您正在为正则表达式寻找dotall修饰符,它将强制点跨行匹配,而默认情况下不会这样做。JS正则表达式不存在这种情况,但作为一种解决方法,您可以将正则表达式重新表述为:

(/^\>([\s\S]*?)(?=\>|\n\n)/gm
另外,作为一个关于行尾的简要说明,Unix使用的是模式中的
\n
,而Windows使用的是
\r\n
。要匹配以任何一个结尾的行,可以使用
\r?\n