【问题标题】:Match multiple lines with multiline regex用多行正则表达式匹配多行
【发布时间】:2014-02-20 12:14:11
【问题描述】:

我正在尝试匹配包含多行的文本。我的问题是换行符可以是不同的类型(\n、\r\n 或 \r)。目前我正在使用(?:\r?\n|\r),但想在多行模式下将其替换为$^,但当它们不在字符串的开头或结尾时,它似乎不起作用。

例如A$^B 不匹配

A
B

A
B

我正在使用regex101 进行测试。

【问题讨论】:

    标签: c# regex


    【解决方案1】:

    $^ 本身不匹配换行符,它们只匹配行尾/开始处的 位置。你需要使用类似的东西

    A[\r\n]+B
    

    【讨论】:

    • 好吧,这有点不幸。但至少现在我知道我不能让它更容易检测换行符。为什么B逃跑了?
    • @nhahtdh:哦,感谢您修复我的正则表达式!不知道那个反斜杠是从哪里来的。
    【解决方案2】:

    如果您对任何空格都满意

    A\s*B - 可以选择有空格 A\s+B - 必须有一些空格

    A[\r\n]+B - 必须至少有一个换行符 \r 或 \n - 还可以匹配 a 和 b 之间的多个空行

    【讨论】:

    • \s 可能是另一个不错的解决方案,但我必须使用完整的正则表达式对其进行测试。
    猜你喜欢
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多