Regex应该匹配二进制数据

本文关键字:二进制 数据 Regex | 更新日期: 2023-09-27 18:02:09

我必须解析一个数据文件。我想使用regex (.net),并开始使用这个表达式:

#mux:(?<mux>[a-z0-9 ]+)#|#curr: (?<curr>'d+)#|#pot:(?<pot>'d+)#|#data#(?<data>'w+)#EOC#

我的数据文件内容如下:

#pot: 80##curr: 200##mux: rp 0 1 rn 0 2##data# ... binary data ... #EOC#

这工作很好,只要我的数据是888,例如,但我的数据由二进制数据组成,所以我怎么能在正则表达式中做到这一点?我"只是"需要一个a结构,而不是我的数据模式中的'w+,它匹配任何字符或字节值。

谢谢你的帮助。

Regex应该匹配二进制数据

我建议使用延迟点图案.*?RegexOptions.Singleline选项:

#mux:(?<mux>[a-z0-9 ]+)#|#curr: (?<curr>'d+)#|#pot:(?<pot>'d+)#|#data#(?<data>(?s:.*?))#EOC#
                                                                              ^^^^^^^^

查看regex演示

它将尽可能少地匹配任何0+字符(直到第一个)#EOC#