1

我需要在 python 中解析 EDIFACT 消息。
要查找段,例如 UNB,我正在尝试使用正则表达式

pattern = "UNB(.*?)(?<!\?)(\?\?)*[']"  

和测试字符串

message = "UNA+456+6:54+654'UNB+64+654+54?'UNC+54+654+654'"  

段分隔符是'(撇号)和? 是转义字符。在 RegexCoach 中,匹配字符串是UNB+64+654+54?'UNC+54+654+654'
这是正确的,因为 UNB 转义后的第一个撇号
但在 Python 3.5

re.match(pattern,message)

return None :( 你知道错误在哪里吗?或者建议其他解决方案?

感谢
测试:

正则表达式可视化

调试演示

4

0 回答 0