使用正则表达式匹配多个标题样式

我正在尝试使用正则表达式来捕获部分标题,但是为什么我能够用它捕获“4.1 General”,但是如果我在正则表达式的末尾添加换行符,\n([\d\.]+ ?\w+)\n它不再捕获该行?后面没有换行还是我遗漏了什么?


\n([\d\.]+ ?\w+)

输入


3.6.10

POLLUTION DEGREE 4

continuous conductivity occurs due to conductive dust, rain or other wet conditions

3.6.11

CLEARANCE

shortest distance in air between two conductive parts

3.6.12

CREEPAGE DISTANCE

shortest distance along the surface of a solid insulating material between two conductive

parts

4 Tests

4.1 General

Tests in this standard are TYPE TESTS to be carried out on samples of equipment or parts.

\n([\d\.]+ ?\w+)\n? 似乎也不起作用。


慕工程0101907
浏览 221回答 2
2回答

米脂

这是重叠匹配的经典案例。前一场比赛包含\n4 Tests\n并且最后一场比赛\n已经被消耗,从而阻止了下一场比赛。我看到您想要匹配整行文本的文本,因此,使用^和$锚定RegexOptions.Multiline选项更有意义:@"(?m)^([\d.]+ ?\w+)\r?$"查看.NET regex 在线演示请注意,$在 .NET 正则表达式中,仅在\nWindows 行尾是 CRLF之前匹配,因此需要在$,之前使用可选的 CR \r?。结果:
打开App,查看更多内容
随时随地看视频慕课网APP