【问题标题】:Match regex pattern multiple times多次匹配正则表达式模式
【发布时间】:2020-10-10 23:47:59
【问题描述】:

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

示例输入:

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

预期输出:

<br>
ABC
<br>

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

&lt;br&gt; 标签之间可以有任意数量的空格。

我尝试过的:

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

【问题讨论】:

  • 如果您不必费心处理 Windows 创建的文件(使用行终止符 \r\n),请考虑将匹配的 /\n{2,}/ 替换为 \n/\n(?=\n)/ 用空字符串 (都设置了多行标志)。

标签: php regex


【解决方案1】:

只需查找 &lt;br&gt; 后跟可选空格字符 2 次或更多次,然后替换为 &lt;br&gt;

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

如果需要,您可以替换为 "&lt;br&gt;\n"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 2015-09-19
    • 2023-03-16
    • 2014-03-06
    • 1970-01-01
    相关资源
    最近更新 更多