我試圖用正則表達式來拆分EDIFACT線。在EDIFACT中,一行的組成部分由一個標記分隔,通常爲「+」。 「+」可以通過在「?」前面加以區分。我可以使用表達式來實現這一點分割字符串,除非令牌逃過一劫,但忽略逃脫轉義字符
(?<!\?)\+
到目前爲止這麼好。然而,轉義字符本身可以通過加倍(「??」)來逃脫。這裏有一些例子和輸出時分裂
ABC+DEF+GHI => ABC, DEF and GHI (3 elements)
ABC?+DEF+GHI => ABC?+DEF and GHI (2 elements)
ABC??+DEF+GHI => ABC??, DEF and GHI (3 elements)
這是我正在努力的第三個。我將如何調整我用來表現的表情?可以逃脫實體
可以'???','''? –
您可以使用['(?:[^?+] | \ ?.)+'](https://regex101.com/r/hP7eA6/1)來匹配子字符串。 –
好點Giorgi,你說得對,它應該處理重複的轉義字符。 Wiktor的解決方案處理這個問題。 –