I am stumbled on a regular expression and unable to fix it after trying several different ways.
Here is the link to the RegEx with sample input and below is the RegEx and Sample text for quick reference:
Regex:
((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*
Sample input:
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
________________________________________
What I am looking for is to capture the values from Circuit IDs column. It works well if there is a tab character after the circuit ID. But sometimes there are multiple spaces after Circuit ID, instead of tab character. That time it captures wrong circuit ID by capturing some extra characters from the next column.
In order to get around this situation, I need to modify the capture group in such that, it will consider the text only if there is only one space in the Circuit ID.
In below screen shot it should not capture the data underlined in red. The ones underlined in Green are OK:
