我一直在用我目前的特定正则表达式问题来绞尽脑汁。
我希望匹配可能跨越多行的值。 如果数据跨越多行,则它将作为空格而不是下划线“_”结束,但行中可能有一个有效的文本,其前面有一个空格和下划线“This _is”。
见以下文字示例:
This is d_ata 1
_This is _
data 2
This _is data 3a
This _
is _
data 4
结果如下
匹配1
This is d_ata 1
匹配2
_This is _
data 2
匹配3
This _is data 3a
匹配4
This _
is _
data 4
我不关心内容匹配,只是确保我得到正确的行匹配结束。
编辑: 请参阅Robby在以下解决方案背后的负面看法。
之前曾尝试过一些额外的逻辑,结果证明我的正则表达式提供程序要处理复杂,简化它并且它有效。
答案 0 :(得分:2)
此PCRE表达式应提供所需的结果:
/^.*?(?<! _)$/gms
这使用负面后顾问(?<! _)
与多线标记(m
)结合使用,以匹配不在_
之前的行尾。单行标志(s
)确保点也匹配换行符。