Microsoft VBScript Regular Expressions 5.5 (JavaScript 정규 표현식과 동일해야 함)를 사용하는 VBA 코드에서 정규 표현식을 실행하려고합니다.이 정규 표현식 (VBScript/JavaScript flavor)의 문제점은 무엇입니까?
정규 표현식 : ^[0-9A-Z]?[0-9A-Z]{3}[A-Z]?([0-9A-Z]{6})-?([0-9])?$
입력 : X123A1234567
경기 : 123456
내가주고 관심있어 6 자 마지막 (체크) 숫자를 무시 123456
의 좋은 경기. 완전한. (체크 디지트가 캡처되지만 중요한 문제는 아닙니다.)
그러나 둘 모두가 생략되면 (은 임) 일치 항목은 마지막 숫자를 가져옵니다.
GOOD :
입력 : 123123456
경기 : 123456
없음 알파, 아니 검사 숫자. 좋은 경기.
좋은
입력 : 123A1234567
경기 : 옵션 중간 알파에서 123456
휴가, 옵션 선도적 인 알파를 꺼내 검사 숫자에두고, 우리는 여전히 123456
의 좋은 경기를 얻을.
좋은
입력 : X1231234567
경기 : 옵션 선도 알파에서 123456
휴가, 중간 선택적 알파를 꺼내 검사 숫자에두고, 우리는 여전히 123456
의 좋은 경기를 얻을.
BAD
입력 : 1231234567
검색 : 234567
, 선택적 알파 BOTH를 꺼내 검사 숫자에두고, 우리는 234567
의 나쁜 일치를 얻을.
정규 표현식 테스터를 http://www.regular-expressions.info/javascriptexample.html 또는 http://www.regular-expressions.info/vbscriptexample.html으로보십시오.
내가 무엇이 누락 되었습니까? 두 선택적 alphas가 누락 된 경우 정규 표현식에서 마지막 숫자를 무시하도록하려면 어떻게합니까? 정규 표현식은 조회 시스템에 입력하는 데 사용되므로 입력 데이터의 형식에 관계없이 완전한 값과 일치시킬 수 있습니다.
업데이트 : 위의 예제에는 하이픈 (정규식으로 표시)이 포함되어 있지 않습니다. 하이픈과 체크 숫자가있는 입력 데이터는 항상 일치합니다.
업데이트 : 아래 정규 제안 덕분에 작동합니다 (감사합니다!) :
이정규 표현식이 : ^[A-Z]?[0-9]{3}[A-Z]?([0-9]{6})-?([0-9])?$
나는 그것이 이것이라고 생각한다. 초기 선택 문자가 알파 또는 영숫자인지 확인해야합니다. –
이것은 그 것이다. 사양은 다소 흐릿하지만, 알파 만 사용하는 경우 "문자"를 사용하고 숫자 만 사용하는 경우 "숫자"를 사용한다는 사실을 깨달았습니다. 수치는 의미가 있지만 charcter는 영숫자로 생각했습니다. –