我正在尝试使用正则表达式来捕获部分标题,但是为什么我能够用它捕获“4.1 General”,但是如果我在正则表达式的末尾添加换行符,\n([\d\.]+ ?\w+)\n它不再捕获该行?后面没有换行还是我遗漏了什么?\n([\d\.]+ ?\w+)输入3.6.10POLLUTION DEGREE 4continuous conductivity occurs due to conductive dust, rain or other wet conditions3.6.11CLEARANCEshortest distance in air between two conductive parts3.6.12CREEPAGE DISTANCEshortest distance along the surface of a solid insulating material between two conductiveparts4 Tests4.1 GeneralTests in this standard are TYPE TESTS to be carried out on samples of equipment or parts.\n([\d\.]+ ?\w+)\n? 似乎也不起作用。
2 回答
米脂
TA贡献1836条经验 获得超3个赞
这是重叠匹配的经典案例。前一场比赛包含\n4 Tests\n
并且最后一场比赛\n
已经被消耗,从而阻止了下一场比赛。
我看到您想要匹配整行文本的文本,因此,使用^
和$
锚定RegexOptions.Multiline
选项更有意义:
@"(?m)^([\d.]+ ?\w+)\r?$"
请注意,$
在 .NET 正则表达式中,仅在\n
Windows 行尾是 CRLF之前匹配,因此需要在$
,之前使用可选的 CR \r?
。
结果:
- 2 回答
- 0 关注
- 220 浏览
添加回答
举报
0/150
提交
取消