使用 Regex 在 VB6 中替换 STX 和 ETB 字符

Replacing STX and ETB characters, in VB6, using Regex

我正在使用 vb6 应用程序读取 COM 端口结果,我需要使用正则表达式替换一些字符。

问题主要在于:我在“R”和“|”字符之间得到了很多不必要的字符,我想将其删除。为此,我使用了替换函数和正则表达式,但它不起作用。

这是我用 vb6 编写的代码:

objReg.Pattern = "R.*\|"
objReg.Global = True
x$ = objReg.Replace(Text1.Text, "R|")

输入流:

RDA
3|4|

这是 ("R" + ETB + "DA" + STX + "3|4|")

预期结果:

R|4|

非常感谢这方面的任何帮助,谢谢!

您可以使用

objReg.Pattern = "R[^|]+\|"
x$ = objReg.Replace(Text1.Text, "R|")

regex demo

正则表达式将匹配 R,然后是 | 以外的一个或多个字符(使用 [^|]+ 模式),然后是文字 | 字符。整场比赛将被替换为 R|.

如果您需要对模式进行更多添加,您也可以在此处使用带反向引用的捕获组:

objReg.Pattern = "(R)[^|]+(\|)"
x$ = objReg.Replace(Text1.Text, "")

(R) 组将对应于 </code> 反向引用,<code>(\|) 将对应于

参见 another regex demo