【问题标题】:Regex Not Match To Next Line正则表达式与下一行不匹配
【发布时间】:2013-03-22 01:46:34
【问题描述】:

想要匹配“主题”或“主题:”之后的内容,但仅限于该行
我想在所有行中搜索主题或主题:
但是如果该行的其余部分为空白,则不匹配

(?i)(?<=\bSubject:?\s+).+$

示例文本

主题: 帕特·桑德斯

(Subject: 和 Pat 之间的换行符)

该正则表达式匹配 Pat Sanders。
因为它在下一行,我不希望它匹配。

正则表达式是用RegexOptions.Multiline编译的

我认为.+ 是贪婪的并且消耗换行符。

这是因为它只匹配当前行:

(?i)(?<=\bsubject:).+?$

但这不起作用:

(?i)(?<=\bsubject:?).+?$

回溯不消耗 :
: 包含在匹配项中

【问题讨论】:

    标签: .net regex


    【解决方案1】:

    试试这个可能有用

    (\b(subject)\b).+(?=\s+\r?$)
    

    【讨论】:

    • 我已经绑定了。它的效果是换行符不是比赛的一部分,但它仍然与 Pat Sanders 匹配。它只是在 Pat Sanders 之前没有换行符。
    【解决方案2】:

    你试过了吗?

    Subject:[\w ]+$
    

    在这里查看:http://rubular.com/r/k8SyIO6c2R

    【讨论】:

    • 这将与“主题:”匹配,我不希望这样。主题是向前看。
    猜你喜欢
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 2013-10-28
    • 2017-11-13
    • 1970-01-01
    相关资源
    最近更新 更多