为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕工程0101907 2021-07-12 16:56:27
我正在尝试使用正则表达式来捕获部分标题,但是为什么我能够用它捕获“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 regex 在线演示

请注意,$在 .NET 正则表达式中,仅在\nWindows 行尾是 CRLF之前匹配,因此需要在$,之前使用可选的 CR \r?

结果:

//img1.sycdn.imooc.com//61050d4d000138aa08580238.jpg

查看完整回答
反对 回复 2021-07-31
  • 2 回答
  • 0 关注
  • 220 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信