Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Regex 跨行反转正则表达式匹配_Regex - Fatal编程技术网

Regex 跨行反转正则表达式匹配

Regex 跨行反转正则表达式匹配,regex,Regex,如何反转此表达式以匹配除了和标记之间的内容之外的所有内容 ((?s)<!-- LIST -->.*?<!-- /LIST -->) ((?s)。*?) 意思是我想删除之前和之后的所有内容,您使用的正则表达式已经匹配了两个标记之间的部分,您只需添加前面和后面的部分,并使用backreference将所有内容替换为保存的组(通常斜杠/也要转义) 这是一个通用正则表达式代码: s/(?s).*(<!-- LIST -->.*?<!-- \/LIST --&

如何反转此表达式以匹配除了
标记之间的内容之外的所有内容

((?s)<!-- LIST -->.*?<!-- /LIST -->)
((?s)。*?)

意思是我想删除
之前和

之后的所有内容,您使用的正则表达式已经匹配了两个标记之间的部分,您只需添加前面和后面的部分,并使用backreference将所有内容替换为保存的组(通常斜杠
/
也要转义)

这是一个通用正则表达式代码:

s/(?s).*(<!-- LIST -->.*?<!-- \/LIST -->).*/\1/
s/(?s)。*(.*)。/\1/

联机实现

这不是一个使用正则表达式的好地方,因为标记的语言不是正则语言。@maexls:告诉我提供的解决方案是否能按预期工作,或者是否需要对其进行优化。@GsusRecovery:确实有效,谢谢!!