Regex101 测试:https ://regex101.com/r/Yfp311/2
我很难使以下正则表达式模式起作用。对于下面的示例文本字符串,REF1 匹配整行,忽略在行中找到“//[text]”时应匹配的可选REF2 组。
目前,正则表达式不承认 //[text] 并将整个文本错误地匹配为 REF1。我假设这是贪婪匹配的一个特征.. 但是我在实现非贪婪模式以及前瞻/后视(似乎没有工作)方面都没有成功。
任何帮助或指导将不胜感激……不确定我遗漏了什么,因为我认为我当前的正则表达式模式应该可以正常工作。如果我能澄清任何事情,请告诉我!谢谢你!
^(?P<ID>[A-Z][A-Z0-9]{3})?(?P<REF1>.+)(//(?P<REF2>.+))?(\n?(?P<EXTRA>.+))?$
TEX1CNS0P5-AA//CAT-523-VID-00EOS-0
XUX PETER LAB RANDOM TEXT DM5.
TEX2BFTBSH9999SBRT2L
RATRACE201
TEX3GWS0P2-AA//D-14839048-99-3
THERE WAS 200 COALS IN HIS STOCKING.
预期匹配:
字符串 1:
编号:TEX1
参考 1:CNS0P5-AA
参考 2:CAT-523-VID-00EOS-0
额外:XUX PETER LAB 随机文本 DM5。
字符串 2:
编号:TEX2
参考 1:BFTBSH9999SBRT2L
ref2:(不匹配,因为“//”没有出现在这个文本中)
附加:RA TRACE201
字符串 3:
编号:TEX3
参考 1:GWS0P2-AA
参考 2:D-14839048-99-3
额外:他的袜子里有 200 块煤。
犯罪嫌疑人X
慕姐8265434
Helenr
相关分类