Regex 如何将编码为Unicode的ANSI数据与正则表达式匹配

Regex 如何将编码为Unicode的ANSI数据与正则表达式匹配,regex,Regex,我有一些ANSI数据编码为UTF16 Little Endian 因此,它看起来像a\0b\0c\0。我怀疑这对正则表达式的要求太高了,但有可能,有没有办法专门匹配这些数据 我可以使用^[\w\x00]+$,但这并不能真正确保空字节位于正确的位置。有没有办法进行交替模式匹配,或者基于字符位置mod 2进行匹配,以便偶数位置必须用空字节填充,其他位置不允许使用空字节 如果不是的话,我会写一点手动代码,只是知道会很有帮助 谢谢。你说的“ANSI”是什么意思?(微软误用该术语指的是以类似于拉丁语1的微

我有一些ANSI数据编码为UTF16 Little Endian

因此,它看起来像
a\0b\0c\0
。我怀疑这对正则表达式的要求太高了,但有可能,有没有办法专门匹配这些数据

我可以使用
^[\w\x00]+$
,但这并不能真正确保空字节位于正确的位置。有没有办法进行交替模式匹配,或者基于字符位置mod 2进行匹配,以便偶数位置必须用空字节填充,其他位置不允许使用空字节

如果不是的话,我会写一点手动代码,只是知道会很有帮助


谢谢。

你说的“ANSI”是什么意思?(微软误用该术语指的是以类似于拉丁语1的微软特定8位编码编码的数据)。当然,将其转换为8位编码并对结果应用正则表达式会更容易。是的,我指的是微软如何使用它的声音-空字节将始终是空字节,从来不会作为特殊口音的一部分在外语中用于这一特定位数据。是的,转换可能是最简单的方法。不过,我试图避免使用if语句,因为代码目前相当整洁,大致可以是
Regex.Match(instanceOfConcreteSubclass.regexVar)。我想前进的方向是转换成一个
instanceOfConcreteSubclass.RunRegex()从长远来看,哪一种可能更好。谢谢你的帮助!