patrón de expresiones regulares en VB6

Necesito extraer RXXX, LXXX y CXXX de estas cadenas
TCK; PCIEX16.A5 R2.1 |TCC
TCK; R2.1 |TCC

aquí está mi código de patrón de expresiones regulares en VB6

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

pero cuando yo

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

myMatches.count es 0

y Cuando la cadena es TCK; R20.1 |TCC

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

coincide correctamente con R20.1, ¿cómo debo implementar correctamente este usando expresiones regulares?

gracias

preguntado el 03 de mayo de 12 a las 07:05

2 Respuestas

Su patrón RegEx está bien, excepto por un punto extra. Cambie el patrón RegEx a

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

contestado el 03 de mayo de 12 a las 07:05

El punto único coincide con cualquier carácter. Entonces tu expresión regular falla en R2.1 porque

  • [RLC][0-9]{1,5} cerillas R2
  • el punto coincide .
  • el punto literal \. no logra coincidir con el 1.

Esto no es un problema con R20.1, aunque:

  • [RLC][0-9]{1,5} cerillas R2
  • el punto coincide 0
  • el punto literal \. cerillas .
  • el literal 1 cerillas 1.

Simplemente elimine el punto sin escape:

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

contestado el 03 de mayo de 12 a las 07:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.