c# - 当不遵循特定字符(?)时,如何使用正则表达式匹配字符(')?

标签 c# regex edi edifact

我如何编写正则表达式模式以通过特定定界符拆分字符串,只要它前面没有问号?

我编写了一个解析器,可将 EDIFACT 消息拆分为段、组合和元素。但在 EDI 标准中,问号是转义字符。 所以要拆分这个字符串:

'PRI+2.005:1+9022.5'RAD+RRHANB97+120814'

我可以使用 string.Split('\''),然后是 string.split('+'),然后是 string.split(':') 来获得 PRI、2.005、1、9022.5 等等 但是,这些字符可以用问号转义:

'PRI+2.005?+3.2:1+9022.5'RAD?'R+RRHANB97+120814'

现在应该是 PRI、2.005+3.2、1、9022.5、RAD'R、RRHANB97。

谁能帮忙写一个匹配 ' 而不是 ' ?' 的正则表达式?

谢谢

最佳答案

negative lookbehind :

(?<!\?)'

关于c# - 当不遵循特定字符(?)时,如何使用正则表达式匹配字符(')?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12970643/

相关文章:

c# - PropertyChanged - null 和/或被另一个线程更改 - 实际示例?

c# - 如何自定义 ASP.Net Core 模型绑定(bind)错误?

regex - 在 if-elsif-else-end 中使用正则表达式

javascript - FILTER_VALIDATE_EMAIL 正则表达式到 JavaScript?

C# .NET AS2 通信

c# - 已安装的 .NET 6.0 SDK 未通过 dotnet --info 或 dotnet --list-sdks 显示,并且取决于 SDK 的命令失败 (Linux/Ubuntu)

c# - 如何让 C# 中的应用程序从网站收集数据?

Python 正则表达式 - 后视断言必须固定宽度

edi - 我如何知道 x12 文档中使用的是什么字符集?

regex - EDI 的 Powershell 正则表达式模式