使用 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|")
正则表达式将匹配 R
,然后是 |
以外的一个或多个字符(使用 [^|]+
模式),然后是文字 |
字符。整场比赛将被替换为 R|
.
如果您需要对模式进行更多添加,您也可以在此处使用带反向引用的捕获组:
objReg.Pattern = "(R)[^|]+(\|)"
x$ = objReg.Replace(Text1.Text, "")
(R)
组将对应于 </code> 反向引用,<code>(\|)
将对应于
。
我正在使用 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|")
正则表达式将匹配 R
,然后是 |
以外的一个或多个字符(使用 [^|]+
模式),然后是文字 |
字符。整场比赛将被替换为 R|
.
如果您需要对模式进行更多添加,您也可以在此处使用带反向引用的捕获组:
objReg.Pattern = "(R)[^|]+(\|)"
x$ = objReg.Replace(Text1.Text, "")
(R)
组将对应于 </code> 反向引用,<code>(\|)
将对应于 。