RegEx根据字符串结果抓取信息

时间:2018-04-17 20:38:44

标签: c# regex parsing

我正在尝试从数据列表中获取用户名。数据以奇怪的格式保存,其中形成3个字符整数以类似于下一个字段。在下面的数据中:

数据

129ABCDIEN ABCDHERS ABCDIT UABCU000 212 113P.O. BOX  106000 212 1182920 
LAKEABCD AVE.000 212 126ST. JOSEPH,  MI 41234-0132000 217 114(123) 983- 
12340000123 207 109PAGE    10000265 134From:    7/01/00     To:   
7/31/000000293 110Account #:123 1041106000 265 121Tax ID #: 123-12-1234000 
212 118SARITEIO SARICO JR000 212

我想选择

SARITEIO SARICO JR

数据中的常量是TAX ID#:[21字符]后跟'000 212'和名称的字符数。在这种情况下是18个字符。

,---- Normal String
|.,---- number of characters
|||                  |- End of the string
118SARITEIO SARICO JR000

目前我有选择的字符数,但我不知道如何重复使用select来选择下一个变量

目前的RegEx:

/Tax ID #: .{20}(..)

我是RegEx的新手,所以正确方向的任何一点都会有所帮助。

我也可以使用C#中的任何功能。

1 个答案:

答案 0 :(得分:0)

遵循您的规则,将有一个简单的正则表达式匹配主题字符串中的所需模式:

Tax ID.{18}\s*\d{3}(?:\s*\d+)*((?i)[a-z]+(?:\s[a-z]+)*)

匹配敏感Tax ID之后匹配18个字符(换行符除外,因为我不确定您的数据是否包含换行符)。它匹配后面的可选空格(包括换行符)和精确的3数字,后跟可选的类似模式。接下来将匹配仅包含英文字母的单词序列。这个被捕获并且设置了不区分大小写的标志(?i)

您只需获得对第一个捕获组的访问权限。

Live demo