2014-11-11 8 views
1

특정 문자열을 찾기 위해 Excel Regex 패턴을 만들려고합니다. 내가 9999 내가 다른 패턴 있지만 없음 작업을 시도VBA 정규식에 일치하는 두 자리 4 자리 숫자로 된 문자열

StringToMatch = "a75z6878" 

Dim objRegExp As New RegExp 
Set objRegExp = CreateObject("vbscript.regexp") 
objRegExp.IgnoreCase = True 
objRegExp.Global = True 

objRegExp.Pattern = "[a-z]([0-9][0-9][0-9][0-9])[a-z]([0-9][0-9][0-9][0-9])" 
objRegExp.Pattern = "[a-z]([0-9]{1-4})[a-z]([0-9]{1-4})" 

If objRegExp.Test(StringToMatch) Then MsgBox(Found!) 

에 0과 0000 일치하도록 시도하고

: 임하려고 무엇을이.
내가 뭘 잘못하고 있니? 뭐가 문제

답변

2

objRegExp.Pattern = "[a-z]([0-9]{1-4})[a-z]([0-9]{1-4})"

의 정량은 {m,n}로 지정해야하지 {m-n}

변화를 정규식

[a-z][0-9]{1,4}[a-z][0-9]{1,4} 

에 예를 들어, 링크를 참조 http://regex101.com/r/wA2qM3/1

또는 더 짧은 버전

[a-z]\d{1,4}[a-z]\d{1,4} 
+0

당신은 자신의 문제에 대해 옳지 만 수정 사항에 약간의 오타가 있습니다. 괄호가 일치하지 않습니다. 그러나 당신이 그것에있는 동안, 다만 괄호를 제거하십시오; 그들은 필요하지 않습니다. 그리고'\ d'는 더 짧아 질 것입니다. –

+0

@BrianStephens 그 점을 지적 해 주셔서 감사합니다 :) – nu11p01n73R

+0

고마워요! 그게 효과가 있었어! – Tony

관련 문제