如何在正则表达式中排除带有...的行

时间:2015-12-17 21:24:37

标签: regex

我的文件中包含以下目录和部分:

1.2 Purpose .................... 8  
1.3 System Overview ............ 8  
1.4 Document Overview .......... 8  
1.5 Definitions and Acronyms ......... 9  
2.1.3.3.8   FOO 
2.1.3.3.9  BAR 
2.1.4 TEST

我想提取部分名称并忽略属于目录的行。

我一直在尝试这个正则表达式:

^((?:\d{1,2}\.)+(?:\d{1,2})+)\s.+(?!\.\.\.).*$

但是,我一直在捕捉目录行。

如何使用....字符串排除行?

谢谢!

1 个答案:

答案 0 :(得分:3)

这里的问题是你只是在一个非常具体的地方排除了.;你的负面前瞻性比赛并没有超出它所处的位置。相反,请考虑:

^(\d{1,2}(?:\.\d{1,2})*)\s*[^.]*(?!.*\.{3}).*$
#                                  ^^

......下面有胡萝卜的人物是至关重要的:他们不仅在那个特定的点上,而且在它后面的任何地方也适用负面的前瞻。