1


我需要从这些字符串TCK中提取 RXXX、LXXX 和 CXXX ;PCIEX16.A5 R2.1 |TCK
TCK; R2.1 |TCK

这是我在 VB6 中的正则表达式模式代码

myRegExp.Pattern = "\s[RLC][0-9]{1,5}.\.1"  

但是当我

Set myMatches = myRegExp.Execute(" TCK; R2.1 |TCK")

myMatches.count 为 0

当字符串为 TCK 时; R20.1 |TCK

 myRegExp.Pattern = "\s[RLC][0-9]{1,5}.\.1" 

正确匹配 R20.1,我应该如何使用正则表达式正确实现这个

谢谢你

4

2 回答 2

1

您的 RegEx 模式很好,除了一个额外的点。将正则表达式模式更改为

myRegExp.Pattern = "\s[RLC][0-9]{1,5}\.1"
于 2012-05-03T06:39:14.920 回答
1

单个点匹配任何字符。所以你的正则表达式失败了,R2.1因为

  • [RLC][0-9]{1,5}火柴R2
  • 点匹配.
  • 文字点\.无法匹配1.

不过,这对 没有问题R20.1

  • [RLC][0-9]{1,5}火柴R2
  • 点匹配0
  • 文字点\.匹配.
  • 文字1匹配1

只需删除未转义的点:

myRegExp.Pattern = "\s[RLC][0-9]{1,5}\.1"  
于 2012-05-03T06:40:19.423 回答