我偶然发现了一个正则表达式,在尝试了几种不同的方法后无法修复它。
以下是带有示例输入的正则表达式的链接,下面是用于快速参考的正则表达式和示例文本:
正则表达式:
((XYZ|xyz|Xyz|Convent){1}(\s{0,})(INTERNATIONAL|International|international|INC|Inc|inc|LLC|Llc|llc|WORLDWIDE PTE\. LTD\.){0,})([\r\n]|[\t]|[ ]{2,})(?<CircuitID>[a-zA-Z0-9\-\/\ ]{6,26})\s*
Run Code Online (Sandbox Code Playgroud)
输入示例:
Circuits Affected:
Company Name Circuit ID Z End Billing ID ServiceType
XYZ INTERNATIONAL A1B101012 ABCD-XYZ-ABG089AB A000123456 UNI
XYZ INTERNATIONAL AB/PQRS/012345/ /ABC / PQRSTUVW ABCDEFGH CO ADDRESS CITY 1234 S RIDGELINE BLVD VA SOMECITY 12345 SOME BRANCH PKWY A0123456 N/A 0:00 CDT - 1:00 CDT
________________________________________
XYZ INTERNATIONAL AB/ABYX/271703/ /ABC / ABCDO47HBS ABCDEFG71 N/A N/A A0123456 N/A 0:00 CDT - 1:00 CDT
________________________________________
XYZ WORLDWIDE PTE. LTD. A1234597 N/A N/A N/A N/A A0123456 abcde-randomashb-12234568 0:00 CDT - 1:00 CDT
________________________________________
Convent Inc A123 4599 N/A N/A N/A N/A A0123456 abcde-randomhigh-00012345 0:00 CDT - 1:00 CDT
________________________________________
XYZ INTERNATIONAL B124565 N/A N/A N/A N/A A0123456 abcde-randomashb-12234568 0:00 CDT - 1:00 CDT
________________________________________
XYZ INC AB/CDEF/123455/ /ABC / ABCDEFGH PQRSTUVW N/A N/A A0123456 N/A 0:00 CDT - 1:00 CDT
________________________________________
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是捕获电路 ID 列中的值。如果电路 ID 后面有制表符,则效果很好。但有时Circuit ID后面有多个空格,而不是制表符。这次,它通过捕获下一列中的一些额外字符来捕获错误的电路 ID。
为了解决这种情况,我需要修改捕获组,以便仅当电路 ID 中只有一个空格时才会考虑文本。
在下面的屏幕截图中,它不应捕获红色下划线的数据。绿色下划线的都是可以的:
| 归档时间: |
|
| 查看次数: |
1442 次 |
| 最近记录: |