Regex 用于查找ASCII字符的正则表达式

Regex 用于查找ASCII字符的正则表达式,regex,regex-negation,Regex,Regex Negation,我有一根这样的绳子- “CRT\x00\x00\x00\x00\x00G3\x00\x00\x00\x00\x00\x00\x00\x80\x10a\x06\x00\x00\x00\x16@E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13“ 我必须将ASCII字符(CRT、G3、a、@E)转换为十六进制,其他字符\x00到\x09将分别替换为0到9,上面的\x10将分别显示为10和以上 所以我要做的是写一个正则表达式,找到一个与模式不匹配的字符,/\x.

我有一根这样的绳子-

“CRT\x00\x00\x00\x00\x00G3\x00\x00\x00\x00\x00\x00\x00\x80\x10a\x06\x00\x00\x00\x16@E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13“

我必须将ASCII字符(CRT、G3、a、@E)转换为十六进制,其他字符\x00到\x09将分别替换为0到9,上面的\x10将分别显示为10和以上

所以我要做的是写一个正则表达式,找到一个与模式不匹配的字符,/\x../g,然后将这些字符转换成十六进制,用十六进制替换ascii,然后我就可以处理\x。。用另一个正则表达式填充模式

我写的模式是/[^\x\d\d]|[^\x\w\d]|[^\x\d\w]/g

这是我的正则表达式模式和regex101.com上的字符串-

若你们看到除一个问题外,其他事情都在按预期进行。问题-我没有得到匹配的3,这是在G(G3)之后


有人能帮忙吗。提前谢谢。

您可以使用

(?!\\x\d\d)(.)|..(..)
这将单个ASCII字符捕获到组1中,并将十六进制序列捕获到组2中

如果组1不为空,则应将其转换为两位十六进制代码并插入。否则,应插入第二组()


.

如果您使用的是PHP,请尝试。或者。您的正则表达式不正确地使用字符类。字符类是一组括号内的字符(或其他类)。您在其中以错误的方式使用字符串-
\x
。检查右边的解释,这就是我要找的。我把它改了一点,现在它达到了我的目的。谢谢。:)