正则表达式只获得3.X的字符串

时间:2013-04-23 08:55:50

标签: c# regex

我有像:

这样的字符串
 - 3.1 TitleA
 - 3.1.1 TitleB
 - 3.1.1.1 TitleC
 - 3.2 TitleD
 - 3.2.1 TitleE
 - 3.2.2 TitleF
 - 3.3 TitleG

我想只获得以3.X开头的标题 我试着用(C#):

Match m = Regex.Match(table_of_content[i], "3.[1-999]");

但它给了我3.2.1这样的标题 我怎样才能获得以3.X开头的标题?

提前谢谢

2 个答案:

答案 0 :(得分:6)

快速解决方案是:

@" 3\.\d+ "

这假设在节号之前和之后有空格。

如果假设适用,这是避免匹配案例的最简单的解决方案,例如:

  • 13.23之前出现的其他数字)
  • 2.3.23不是最高级别的部分编号)
  • 3.10.1(超过2个级别的小节)

答案 1 :(得分:0)

我认为他只需要3.x(不是3.x.x)

(?<!\w|\.)3.\d+(?!\w|\.)

好的,然后