在php中替换字符串中的br标记

在php中替换字符串中的br标记,php,regex,Php,Regex,我有下面的字符串。我想用/n替换换行符 Good FRIENDS are hard to find,<br /> harder to leave,<br /> and impossible to forget. 好朋友很难找到,更难离开,不可能忘记。 你试过了吗 str\u replace(“,”\n“,$your\u字符串); preg\u replace(“//”、“\n”、$your\u字符串); 使用 $text=

我有下面的字符串。我想用/n替换换行符

Good FRIENDS are hard to find,<br
            /> harder to leave,<br
            /> and impossible to forget.
好朋友很难找到,
更难离开,
不可能忘记。
你试过了吗

str\u replace(“
,”\n“,$your\u字符串);
preg\u replace(“//”、“\n”、$your\u字符串);
使用

$text=str\u replace(“
”,“\n”,“$text”);
如果在示例代码中的

标记中实际有换行符,请尝试以下操作:

$text = preg_replace("/<br\n\W*\/>/", "\n", $text);
$text=preg\u replace(“//”、“\n”、$text);
使用此功能

   function separate( $str,$subStr, $count )
  {
     $formatStr = '';
     $start=0;
     $num = 1;
     while(!(strpos($str,$subStr,$start) === null))
     { 
       $first = strpos($str,$subStr,$start);
       if ($first < $start)
          break; 
       $newStr = substr($str,$start,$first - $start + 1 );
       $formatStr .= $newStr;
       if ($num % $count == 0)
          $formatStr .= '<br>';
       $num ++;
       $start = $first +1;
     }
     return $formatStr;
  }
输出

AAA.BBB.CCC.
DDD.EEE.FFF.

您也可以尝试以下正则表达式:

$string = preg_replace( '@^(<br\\b[^>]*/?>)+@i', '', $string );
$string=preg_replace('@^(]*/?>)+@i',''$string);

您尝试过什么吗?是的,我尝试过以下示例..$str=str\u replace(“\n”,“
,$str”);但是它不是wrkngi您的示例中的换行符是在
之间吗?您的示例中的参数似乎是反向的。您的参数也不是反向的-至少在我的系统上,\n不在\W范围内。已修复。
/
应该是可选的。并不是每个输入都是伪xhtml。马里奥是正确的,特别是在今天,它很可能只是

而不是

。将代码更改为此也可以处理此问题:
preg\u replace(“//”、“\n”、$your\u字符串)
   function separate( $str,$subStr, $count )
  {
     $formatStr = '';
     $start=0;
     $num = 1;
     while(!(strpos($str,$subStr,$start) === null))
     { 
       $first = strpos($str,$subStr,$start);
       if ($first < $start)
          break; 
       $newStr = substr($str,$start,$first - $start + 1 );
       $formatStr .= $newStr;
       if ($num % $count == 0)
          $formatStr .= '<br>';
       $num ++;
       $start = $first +1;
     }
     return $formatStr;
  }
$str = 'AAA.BBB.CCC.DDD.EEE.FFF.CCC';
echo separate ($str,'.', 3);
AAA.BBB.CCC.
DDD.EEE.FFF.
$string = preg_replace( '@^(<br\\b[^>]*/?>)+@i', '', $string );