【发布时间】:2014-02-20 12:14:11
【问题描述】:
我正在尝试匹配包含多行的文本。我的问题是换行符可以是不同的类型(\n、\r\n 或 \r)。目前我正在使用(?:\r?\n|\r),但想在多行模式下将其替换为$^,但当它们不在字符串的开头或结尾时,它似乎不起作用。
例如A$^B 不匹配
A
B
A
B
我正在使用regex101 进行测试。
【问题讨论】:
我正在尝试匹配包含多行的文本。我的问题是换行符可以是不同的类型(\n、\r\n 或 \r)。目前我正在使用(?:\r?\n|\r),但想在多行模式下将其替换为$^,但当它们不在字符串的开头或结尾时,它似乎不起作用。
例如A$^B 不匹配
A
B
A
B
我正在使用regex101 进行测试。
【问题讨论】:
$ 和 ^ 本身不匹配换行符,它们只匹配行尾/开始处的 位置。你需要使用类似的东西
A[\r\n]+B
【讨论】:
如果您对任何空格都满意
A\s*B - 可以选择有空格
A\s+B - 必须有一些空格
A[\r\n]+B - 必须至少有一个换行符 \r 或 \n - 还可以匹配 a 和 b 之间的多个空行
【讨论】:
\s 可能是另一个不错的解决方案,但我必须使用完整的正则表达式对其进行测试。