【问题标题】:Replacing STX and ETB characters, in VB6, using Regex使用 Regex 在 VB6 中替换 STX 和 ETB 字符
【发布时间】:2019-02-07 11:39:26
【问题描述】:

我正在使用 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|

在这方面的任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: regex vba vb6


    【解决方案1】:

    你可以使用

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

    regex demo

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

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

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

    (R) 组将对应于$1 反向引用,(\|) 将对应于$2

    another regex demo

    【讨论】:

      猜你喜欢
      • 2012-06-22
      • 2019-04-30
      • 1970-01-01
      • 2014-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      相关资源
      最近更新 更多