2011-09-16 3 views
1
abcVIRTUAL123 ^(?!.*VIRTUAL).*$^([a-zA-Z]{3})([a-zA-z0-9]{7})(\d{3})$ FALSE 
abcVIRTUAL123 ^([a-zA-Z]{3})([a-zA-z0-9]{7})(\d{3})$      TRUE 
abcLOCATOR123 ^(?!.*VIRTUAL).*$^([a-zA-Z]{3})([a-zA-z0-9]{7})(\d{3})$ FALSE 
abcLOCATOR123 ^([a-zA-Z]{3})([a-zA-z0-9]{7})(\d{3})$      TRUE 

안녕하세요, 저는 REGEX를 처음 사용하고 Excel에서 VBScript 라이브러리를 사용하고 있습니다.RegEx - 문자열에 특정 문자열이 포함되어 있는지 확인하지 못합니까?

위의 예에서 문자열에 'VIRTUAL'이라는 단어가 포함되어 있는지 확인하고 잘못된 경우 일치하는지 확인하고 싶습니다. 패턴의 나머지 부분이 문자열을 유효하게한다는 것을 제외하고는 거의 모든 것이 다 있다고 생각합니다. 앞서 내 첫 번째 부정적인 시각을 무시했습니다.

포럼에서 다양한 조합을 시도했지만 막혔습니다.

도움을 주시면 감사하겠습니다.

건배 닉

답변

1

이 하나 ^([a-zA-Z]{3})(?!VIRTUAL)[a-zA-Z]{7}\d{3}$

어쩌면 더 나은 경기를이 패턴 ^([a-zA-Z]{3})VIRTUAL\d{3}$과 반전의 결과?

+0

감사합니다. 첫 번째 작품은 훌륭합니다! –

1

당신은 "문자열의 시작 뒤에, 문자열의 끝"을 의미하여 정규식의 중간에 $^있어. 물론 이것은 결코 일치 할 수 없다.

는 시도

^(?!.*VIRTUAL)([a-zA-Z]{3})([a-zA-z0-9]{7})(\d{3})$ 
관련 문제