换行符,换行符和回车符的正则表达式

时间:2019-04-03 06:36:41

标签: php

我要替换“
,\ r,\ n”这些字符并从字符串中断开标签。我尝试构建以下正则表达式,但失败了。

$strText = preg_replace( '/[^\r|\n]|<br\W*?\/>/', ' ', $strText );

例如:-

$strtext = 'Test111<br>222<br/>333\r444\n555';
Expected = 'Test111 222 333 444 555';

2 个答案:

答案 0 :(得分:0)

您可以使用以下解决方案:

$strText = 'Test111<br>222<br/>333\r444\n555';
$strText = preg_replace('/(<br\/*>|\\\r|\\\n)/', ' ', $strText);

var_dump($strText); //string(23) "Test111 222 333 444 555"

演示: https://ideone.com/xCqQsj

答案 1 :(得分:0)

我会使用一个数组

$strText = preg_replace( [
    "/[\r\n]/",    //New Lines
    "/<br[^>]*>/", //Break tags
    "/\s{2,}/"     //Run-on spaces
  ], " ", $strText );

使用数组时,替换操作是按顺序进行的,因此我们可以在末尾放置\s{2,} 2个或更多空格以获取任何可用空格。