我正在处理一个包含多行数据的文本文件。我得到的格式很讨厌,但它是一致的,这就是我想在这里使用 RegEx 的原因。
每个属性都以空格分隔(5 个空格),从州开始,然后是城市,然后是用户类型,然后是用户地址(然后是他们在该地址的年限),然后是 GUID。出于安全目的,我修改了地址,但每一行都遵循相同的格式:
[{ OH Crestline Reseller (1234 Alvarez Dr., 4) a6fa960c-921a-40e6-a5ab-30cc7fb83907 }]
[{ AZ Marana Distributor (1234 Union St., >1) 1f2a9252-cbac-4e17-8d4c-d5eaebb5f6b7 }]
[{ MI Lansing Reseller (1234 Westmore Ave., 11) 5736c1c0-2e23-43cd-8765-c48fbe51ffee }]
我在这里感兴趣的是捕捉城市和带有年数的地址。我编写了以下正则表达式来实现这一点:
\[\{[ ]{5}[A-Z]{1,}[ ]{5}([A-Za-z]{1,})[ ]{5}(?:Reseller|Distributor){1,}[ ]{5}\(([0-9]{1,}[ ][A-Za-z]{1,}[ ][A-Za-z.,]{1,}[ ][>0-9]{1,})
使用上面的表达式和示例数据的第一行,RegExCrestline
在第一组和1234 Alvarez Dr., 4
第二组中捕获。
我的问题 :
有没有一种更简洁或更简洁的方式来编写这个表达式,以便它仍然可以从行中捕获这两条信息?