Php正则表达式换行符上的close-open标记
我有如下html代码:Php正则表达式换行符上的close-open标记,php,regex,preg-replace,Php,Regex,Preg Replace,我有如下html代码: <li>some text more text <li>some other text any more text 一些文本 更多文本 其他一些文本 还有文本吗 我想关闭列表项。项目应在断线时关闭。 结果如下所示: <li>some text<li> more text <li>some other text<li> any more text 一些文本 更多文本 其他一些文本 还有文本吗
<li>some text
more text
<li>some other text
any more text
一些文本
更多文本
其他一些文本
还有文本吗
我想关闭列表项。项目应在断线时关闭。
结果如下所示:
<li>some text<li>
more text
<li>some other text<li>
any more text
一些文本
更多文本
其他一些文本
还有文本吗
这是我的正则表达式,它不起作用:
preg_replace("/<li>+(.*?)+/ig","\\2</li>", $o );
preg_替换(“/+(.*?+/ig)”,“\\2 ”,$o);
它不返回任何内容,而是:
<li>some text<li>
more text
<li>some other text<li>
any more text
一些文本
更多文本
其他一些文本
还有文本吗
非常感谢此正则表达式将接受li行中的所有内容,
\K
将清除匹配并将光标设置到正确的点:
<li>.*\K
下面是一个如何解决preg\u replace问题的示例
$count=null;
$returnValue=preg_replace('/(.*)/',' $1 ,'某些文本
更多文本',-1,$count);
</li>
<li>.*(?:(?<!<\/li>)(?=\s*\n))\K
$count = null;
$returnValue = preg_replace('/<li>(.*)/', '<li>$1</li>', '<li>some text
more text', -1, $count);