Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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_Preg Replace - Fatal编程技术网

PHP-如何使用'&燃气轮机';断线前

PHP-如何使用'&燃气轮机';断线前,php,regex,preg-replace,Php,Regex,Preg Replace,我有这样的输入文本 bla;bla<ul> <li>line one</li> <li>line one</li> <ul>bla line two line tree 但这不是一个好主意,因为该代码将应用于所有的$text行 非常感谢你 现在我可以用这个解决问题了 $output = preg_replace("/(?<=>)\s+(?=)/", "", $text ); $output=preg\u re

我有这样的输入文本

bla;bla<ul>
<li>line one</li>
<li>line one</li>
<ul>bla
line two
line tree
但这不是一个好主意,因为该代码将应用于所有的$text行

非常感谢你

现在我可以用这个解决问题了

$output = preg_replace("/(?<=>)\s+(?=)/", "", $text );
$output=preg\u replace(“/(?)\s+(?=)/”,“”,$text);
非常感谢您可以使用
(?:\n |\r\n)
正则表达式,并将其替换为
,该正则表达式将匹配仅位于行末尾的

$text = "bla;bla<ul>\n<li>line one</li>\n<li>line one</li>\n<ul>bla\nline two\nline tree";
$output = preg_replace( "/>(?:\n|\r\n)/", ">", $text );
echo $output;
$text=“bla;bla
    \n
  • 第一行
  • \n
  • 第一行
  • \n
      bla\nline two\nline tree”; $output=preg_replace(“/>(?:\n |\r\n)/”,“>”,$text); echo$输出;
这会像您期望的那样提供以下输出

bla;bla<ul><li>line one</li><li>line one</li><ul>bla
line two
line tree
bla;bla
  • 一号线
  • 一号线
    • bla 第二行 界址树

请编辑您的问题,并添加您尝试过但不适用于您的代码。您为什么要这样做?我编辑了一个包含一些html元素的csv文件并导致错误,因此我想删除html标记中“>”之后的所有换行符,将它们保留在一行中非常感谢,非常感谢,但是它对我不起作用。@Sun:它对你不起作用的一个原因可能是因为你的文件可能有windows新行,它是
\r\n
。因此,覆盖windows换行符的更好的正则表达式应该是
\n | \r\n
。您的正则表达式“(?)\s+(?=)”可能适用于您的情况,但它也将匹配行中间的一个或多个空格,前面是
,而不是行尾,并将删除该空格。此外,许多语言和工具都不支持look-behind,因此更安全的正则表达式应该是
>(?:\n |\r\n)
,并用
替换它。为语言不支持lookbehinds的人更新我的答案。
$text = "bla;bla<ul>\n<li>line one</li>\n<li>line one</li>\n<ul>bla\nline two\nline tree";
$output = preg_replace( "/>(?:\n|\r\n)/", ">", $text );
echo $output;
bla;bla<ul><li>line one</li><li>line one</li><ul>bla
line two
line tree