Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Php 多次匹配正则表达式模式_Php_Regex - Fatal编程技术网

Php 多次匹配正则表达式模式

Php 多次匹配正则表达式模式,php,regex,Php,Regex,我正在尝试编写一个正则表达式,它将在2到无限次之间匹配给定的模式。实际上,我只是尝试将多个换行符合并到一个换行符中,如果有的话 样本输入: <br><br> <br> ABC <br> <br> 基础知识 预期产出: <br> ABC <br> 基础知识 如果正则表达式是在上述输出上运行的,那么我希望看到完全相同的输出 标记之间可能存在任意数量的空白 我所尝试的: $html=preg_rep

我正在尝试编写一个正则表达式,它将在2到无限次之间匹配给定的模式。实际上,我只是尝试将多个换行符合并到一个换行符中,如果有的话

样本输入:

<br><br>
<br>
ABC
<br>
<br>



基础知识

预期产出:

<br>
ABC
<br>

基础知识
如果正则表达式是在上述输出上运行的,那么我希望看到完全相同的输出


标记之间可能存在任意数量的空白

我所尝试的:

$html=preg_replace('/(?:
\s?{2,}/s',null,$html);
只需查找后跟可选空格字符的

2次或更多次,并替换为

$html = preg_replace('/(<br>\s*){2,}/', '<br>', $html);
$html=preg_replace('/(
\s*){2,}/','
',$html);

您可以替换为<代码>“BR>\n”/代码>如果您不必为Windows创建的文件烦恼(用行终止符<代码> \r\n>代码>),考虑用“代码”> \n>代码>或<代码> /\n((=\n)/<代码> >用空字符串(用多行标记集)替换<代码> /\n 2、}/<代码>的匹配项。