php - 检测没有前置字符的换行符
问题描述
我试图检测 PHP 中的换行符并将它们替换<br>
为前面没有</ul>
,<ul>
或</li>
.
te
<ul>
<li>iasd</li>
<li>asd</li>
</ul>
ja
123
应该导致
te<br>
<ul>
<li>iasd</li>
<li>asd</li>
</ul>
ja<br>
123<br>
到目前为止我想出的正则表达式有效,但是当新行前面(^|^.|.[^((\/li>)|<\/ul>|<ul>)])\r?\n
只有 a 时也会触发。>
解决方案
怎么换:
(?<!(?:<ul>)|(?:<\/ul>)|(?:<\/li>))([\n\r]|$)
和<br>\1
如此处所见
解释:
使用负面的lookbehinds,好吧,lookbehinds通常会让你的生活更轻松。您可以在这里了解更多信息:https ://www.regular-expressions.info/lookaround.html
推荐阅读
- python - 使用 python 进行 Azure AD 验证
- wordpress - 如何为用户未设置的帖子设置缩略图
- android - Google 应用签名、多个应用和 OAuth 客户端 ID:用于 Google API:s 问题
- html - 箭头动画移动侧问题
- javascript - 是否可以使用 JavaScript 在 CRM 的 OOB 查找对话框窗口中获取视图的名称或 ID
- xamarin.forms - Auth0 - 更新用户的根属性 - 403 错误:“您无法更新以下字段”
- jquery - 在 Tempus Dominus Bootstrap 4 datetimepicker 中选择日期后以编程方式切换到时间视图?
- mysql - 如何更新多个相同的外键值,这是laravel中的文件类型
- excel - VBA:如果以下行的值重复,则删除整行,直到找到下一个不同的值并重复
- javascript - 为什么我不能访问这个函数的内部 - 缺少一些基本的东西