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

求能检测多行字段行尾符号的正则表达式

检测行尾符号的正则表达式方案

要精准匹配多行文本中行尾的+符号,你可以用以下两种方案:

方案1:启用多行模式(简洁推荐)

使用正则表达式:\+$

  • 关键说明:必须开启多行模式(不同语言里的标识不同,比如Python的re.M、JavaScript的/m),此时$会匹配每行的末尾(换行符前的位置),只会命中行尾的+。

示例代码(Python):

import re

# 测试文本1(行尾有+)
text_valid = """abcd
efgh+
xyz"""
# 测试文本2(+在中间)
text_invalid = """abcd
ef + gh
xyz"""

# 启用多行模式查找
has_tail_plus_valid = re.search(r'\+$', text_valid, re.M) is not None
has_tail_plus_invalid = re.search(r'\+$', text_invalid, re.M) is not None

print(has_tail_plus_valid)  # 输出 True
print(has_tail_plus_invalid)  # 输出 False

方案2:不依赖多行模式(通用兼容)

如果无法开启多行模式,用这个正则:(?<![\r\n])\+(?=\r?\n|$)

  • 各部分解释:
    • (?<![\r\n]):确保+前面不是换行符,避免匹配空行单独的+
    • \+:匹配目标符号+
    • (?=\r?\n|$):确保+后面紧跟换行(兼容Windows/Unix换行格式)或者文本结尾

为什么你之前的表达式不行?

你写的((|\n))[+]只是匹配“空内容或换行后的+”,完全没限定+的位置是行尾,所以不管+在一行中间还是末尾,只要前面有空或者换行都会匹配,自然无法区分两种场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:43:19