You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则匹配前面无特定模式的换行符?

匹配前面无</u>标签的换行符的正则方案

你之前的正则无效是因为用错了断言类型:(?!</u>)是正向预查,它检查的是换行符之后的内容,而你需要的是检查换行符之前有没有</u>,得用负向后顾断言(后行断言)。

正确正则表达式(支持ES2018+的环境,比如现代浏览器、Node.js、Python 3.6+等)

/(?<!<\/u>)(?:\r\n|\r|\n)/g

正则说明

  • (?<!<\/u>):负向后顾断言,确保当前位置(换行符的起始位置)的前面不是</u>标签
  • (?:\r\n|\r|\n):非捕获组,匹配所有常见的换行格式(Windows的\r\n、Linux/macOS的\n、旧Mac的\r)

匹配验证

对应你的示例字符串:

caaaaa
aaa
<u>refnkrnkfenr</u>
rllllrmlef
rhgfvhr
hbgfdsa

这个正则会匹配第1、2、4、5行末尾的换行符,以及第6行末尾的换行符(如果存在),完全符合你的需求。

兼容旧环境的替代方案

如果你的正则引擎不支持后行断言(比如旧版Python、某些老工具),可以用反向匹配逻辑:先匹配所有换行符,再过滤掉前面紧跟</u>的。或者用如下正则(通过捕获组间接实现):

/(?:.*?(?<!<\/u>))(?:\r\n|\r|\n)/g

不过这种方式需要提取匹配结果里的换行符部分,不如后行断言直接。

内容的提问来源于stack exchange,提问作者User7482938478920

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 08:15:35