【发布时间】:2019-05-28 17:50:44
【问题描述】:
为什么是这个正则表达式:
Summary:(\r\n\t\t\/\/ (.+))+
不匹配以下字符串的最后一行? (请注意,每行开头的空格是两个制表符,但已转换为所有空格,至少在我的浏览器中 - 但在编辑模式下是正确的。)不应该 @ 987654325@ 量词导致最外层括号中的模式部分也匹配最后一行?
// // 概括: // 绝对什么也不做,除了什么都不做之外什么都不做 // 全部。这是http://regexstorm.net/tester 上的结果:
【问题讨论】:
-
可能又是行尾。使用
\r?\n -
我在 regexstorm 上试过了,效果很好
-
@WiktorStribiżew 你能详细说明一下吗?你的建议奏效了,为什么呢?所有的行尾肯定都是\r\n,我刚刚确认了。
-
@rory.ap 是的,我明白了。 .NET 正则表达式的问题在于
.也匹配 CR 符号。.仅与\n不匹配(默认情况下)。因此,内部嵌套的(.+)抓住了 CR,并没有将其归还。Summary:(\r\n\t\t// {5}([^\r\n]+))+也可以。 -
太棒了!谢谢@WiktorStribiżew。