Php 检测不带前置字符的换行符
我正在尝试检测PHP中的换行符,并将其替换为前面没有Php 检测不带前置字符的换行符,php,regex,Php,Regex,我正在尝试检测PHP中的换行符,并将其替换为前面没有、或的 te <ul> <li>iasd</li> <li>asd</li> </ul> ja 123 te 国际会计准则理事会 自闭症 青年成就组织 123 应该导致 te<br> <ul> <li>iasd</li> <li>asd</li> </ul> ja<br>
、
或
的
te
<ul>
<li>iasd</li>
<li>asd</li>
</ul>
ja
123
te
- 国际会计准则理事会
- 自闭症
青年成就组织
123
应该导致
te<br>
<ul>
<li>iasd</li>
<li>asd</li>
</ul>
ja<br>
123<br>
te
- 国际会计准则理事会
- 自闭症
ja
123
到目前为止,我提出的正则表达式(^ | ^...[^(\/li>)|)]\r?\n
可以工作,但在新行前面只有一个
时也会触发该正则表达式。替换:
(?<!(?:<ul>)|(?:<\/ul>)|(?:<\/li>))([\n\r]|$)
(?)|(?:)|(?:)([\n\r]|$)
使用
\1
如图所示
说明:
使用消极的lookbehinds和,lookbehinds通常会让你的生活更轻松。您可以在这里了解更多信息:这些元素中不会有任何标题或类属性,所以我认为这些答案不会影响我?我完全控制了这个HTMLYou没有抓住帖子的重点。你不应该使用正则表达式。相反,我会将数据解析为HTML,然后确定要在哪里插入
,因此,您的意思是将HTML视为纯文本,唯一的“HTML”是
之间没有
的子字符串,对吗?那么请将此信息添加到问题中。尝试preg\u replace(“~[^