시퀀스로 시작하지 않는 문자열에 대한 정규식


197

이 프로그램을 사용하여 많은 테이블을 처리하고 있지만 레이블 "tbd_"로 시작하는 테이블 은 무시해야합니다. 지금까지 [^ tbd_]와 같은 것이 있지만 단순히 해당 문자와 ​​일치하지 않습니다.


SchemaSpy는 어떻게 작동합니까? 테이블 이름 목록을 전달합니까, 아니면 정규식을 전달하고 일치합니까?
Mark

나는 정규식을 통과하고있어 (이 -i 플래그이다)과는 일치를 가져올 것이다, 또는 어떤 경우에 말한다, 그래서 =)
echoblaze

4
@ echoblaze : XML을 처리하는 경우 XML 파서를 사용하지 않는 이유는 무엇입니까? 정규 표현식을 사용하는 것보다 훨씬 쉽습니다.
Gumbo

답변:


335

부정적인 미리보기 어설 션을 사용할 수 있습니다.

^(?!tbd_).+

또는 부정적인 비하인드 어설 션 :

(^.{1,3}$|^.{4}(?<!tbd_).*)

또는 평범한 오래된 문자 세트와 교대 :

^([^t]|t($|[^b]|b($|[^d]|d($|[^_])))).*

6
이것은 특정 정규식 엔진으로 제한됩니까?
Mark Biek

1
나는 두 번째 것이 여전히 테스트에서 tbd_와 일치하는 것처럼 보이기 때문에 묻습니다. 첫 번째는 훌륭합니다.
Mark Biek

5
regular-expressions.info의 풍미 비교를 살펴보십시오 : regular-expressions.info/refflavors.html
Gumbo

1
@Gumbo-. + 대신. *로 끝나지 않아야합니까? tbd_ 인 문자열도 그로 시작합니다 ... 따라서 정의에 따라 다른 문자가 필요하지 않습니까? 그렇지 않으면 좋은 예입니다. 그것은 하지 가 지원하지만 lookaround하는 정규식 엔진을 필요로한다.
BenAlabaster

1
@ balabaster : 나는 그가 빈 문자열을 찾고 있다고 생각하지 않습니다. 그러나 만약 그렇다면, 그는 쉽게 교체하여 해당을 변경할 수 있습니다 .+에 의해.*
검보
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.