RegEx 查找 ASCII 字符
RegEx to find ASCII chars
我有一个这样的字符串-
"CRT\x00\x00\x00\x00\x00G3\x00\x00\x00\x00\x00\x00\x80\x10a\x06\x00\x00\x00\x00\x16@E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13"
我必须将 ASCII 字符(CRT, G3, a, @E) 转换为 HEX,其他字符 \x00 到 \x09 将分别替换为 0 到 9 并且 \x10 以上将显示为 10 及以上分别
所以我想做的是编写一个 RegEx 来查找与模式 /\x../g 不匹配的字符并将这些字符转换为十六进制并将 ascii 替换为十六进制,然后我可以用另一个 regEx 处理 \x.. 模式。
我写的模式是/[^\x\d\d]|[^\x\w\d]|[^\x\d\w]/g
这是我的正则表达式模式和 regex101.com- MyRegEx
上的字符串
如果您发现除一个问题外一切正常。问题-我没有得到 G (G3) 之后匹配的 3。
有人可以帮忙吗?提前致谢。
你可以使用像
这样的东西
(?!\x\d\d)(.)|..(..)
这会将单个 ASCII 字符捕获到第 1 组,并将 HEX 序列捕获到第 2 组。
如果第 1 组不为空,则应将其转换为两位十六进制代码并插入。否则应插入第二组()。
我有一个这样的字符串-
"CRT\x00\x00\x00\x00\x00G3\x00\x00\x00\x00\x00\x00\x80\x10a\x06\x00\x00\x00\x00\x16@E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13"
我必须将 ASCII 字符(CRT, G3, a, @E) 转换为 HEX,其他字符 \x00 到 \x09 将分别替换为 0 到 9 并且 \x10 以上将显示为 10 及以上分别
所以我想做的是编写一个 RegEx 来查找与模式 /\x../g 不匹配的字符并将这些字符转换为十六进制并将 ascii 替换为十六进制,然后我可以用另一个 regEx 处理 \x.. 模式。
我写的模式是/[^\x\d\d]|[^\x\w\d]|[^\x\d\w]/g
这是我的正则表达式模式和 regex101.com- MyRegEx
上的字符串如果您发现除一个问题外一切正常。问题-我没有得到 G (G3) 之后匹配的 3。
有人可以帮忙吗?提前致谢。
你可以使用像
这样的东西(?!\x\d\d)(.)|..(..)
这会将单个 ASCII 字符捕获到第 1 组,并将 HEX 序列捕获到第 2 组。
如果第 1 组不为空,则应将其转换为两位十六进制代码并插入。否则应插入第二组()。