正则表达式 - 一个项目有多个单词

时间:2013-12-03 15:50:35

标签: c# regex

我在文本文件中有多行。

文本文件与此类似:

第1栏第2栏第3栏

12345堆栈溢出12345678

我需要一个正则表达式来检查这个,然后抓住第二列。我的问题是第二列可以是一个或多个单词,当我抓住它或抓住其他列时,我需要它作为字符串中的一个项目。

1 个答案:

答案 0 :(得分:1)

逐行读取文件并使用以下正则表达式匹配:

^\d*\s*([\w\s]*\w)\s*\d*$

现在,第一个命名的子组应该为您提供所需的内容。我不完全确定C#语法,但对于记事本++,$1效果很好。

^确保正则表达式从读取行的最开始开始匹配,而$确保它匹配到最后。

正则表达式的默认贪婪匹配确保在列的开头没有捕获额外的空格两个内容,并且末尾的\w确保没有尾随空格。

如果您的平台也读取了回车符和换行符,您可以将其修改为:

^\s*\d*\s*([\w\s]*\w)\s*\d*\s*$