【问题标题】:How to make this regular expression?如何制作这个正则表达式?
【发布时间】:2011-02-05 03:05:06
【问题描述】:

我想用 PHP 替换字符串中的所有换行符(<br><br />)。使用 preg_replace 我应该使用什么正则表达式?

谢谢!

【问题讨论】:

标签: php regex replace


【解决方案1】:

|<br\s*/?>|i 替换为“字符串”。

(请注意,即使 <br /> 也不能使用正则表达式解析 HTML — 例如,如果 <br /> 是某些内联 Javascript 中字符串的一部分怎么办?使用解析器来获得可靠的结果。)

【讨论】:

    【解决方案2】:
    /<br[^>]*>/
    

    应该做......并且也处理&lt;br clear="all"&gt;。 (如果这不是必需的,请改用KennyTM's solution。在所有情况下,您应该阅读他的免责声明。)

    【讨论】:


    • @Williham Totland,不是那个,不是:S
    • 使用所有格量词:/&lt;br[^&gt;]*+&gt;/
    • @Geert:
      真的,我可以玩一整天。 ;D
    • @Williham:当然,你是对的,但这也是 jensgram 版本中的一个问题。我只想说,如果一个字符组 ([^&gt;]) 不能使用它后面的字符 (&gt;),你应该使用所有格量词来防止可能的不必要的回溯。
    【解决方案3】:

    如果有帮助,请检查一下,如果这里有任何问题,请回复。

    $str = 'This is a test string<br>.and another string <br>that will replace<br> with <br />';
    
    $pattern = "/<br>/";
    $replace = "<br />";
    echo preg_replace($pattern, $replace, $str);
    

    【讨论】:

      【解决方案4】:

      编辑:

      $string = str_replace(array('<br>','<br />'),'', $string);
      

      哦,正则表达式并不是万能的理想工具

      所以如果你认为坚持使用preg_replace 不再有意义,你可以使用这个

      【讨论】:

      • 我说请使用 preg_replace :-)
      • 我相信 OP 希望替换所有 &lt;br&gt; AND &lt;br /&gt; 实例。
      • @jensgram - 忽略了这一点,ty for hu。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      • 2018-03-21
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 2021-05-21
      相关资源
      最近更新 更多