r 유사 REGEX에서 특정 라인 엔드 시퀀스를 부정합니다
문제
'CA'또는 'CA [숫자]로 끝나지 않는 라인을 일치시키고 싶습니다. MySQL에서 rlike를 사용하여 어떻게해야합니까? (지원하지 않습니까?? 등).
다음은 긍정적 인 일치에 대한 정규식입니다. 단지 그것을 부정하는 방법이 필요합니다. '^.*[C][A][0-9]?$'
(당황스러운 아키텍처 제한으로 인해 사용하고 싶지 않습니다. not rlike ...
)
해결책
트릭은 당신이 무엇을 설명하는 것입니다. 하다 일치하고 싶다. 다음은 CA 또는 CA (Digit)로 끝나지 않습니다.
그것은 또는 숫자가 아닌 다른 것으로 끝나거나
그것은 A, 그 다음에 숫자로 끝나거나
그것은 C, A, 숫자 또는 숫자로 끝나거나
C, A, 또는
그것은 숫자가 뒤 따릅니다
그것은 a 또는 숫자와 같습니다
비어 있습니다.
그래서:
rlike '[^A0-9]$|[^A][0-9]$|[^C]A[0-9]$|[^C]A$|^A[0-9]$|^[A0-9]$|^$'
테스트되지 않은 "최적화", 아마도 위의 어딘가에 적어도 하나의 오류 일 것입니다.
다른 팁
레 독은 테이블의 열에서 나옵니다. 대부분의 패턴은 이미 작동합니다. 따라서이 패턴을 기존 구조 내에서 작동시킬 수 있다면 가장 쉬운 일입니다.
나는 한 번 비슷한 일을했는데, 내가 한 일은 정규 표현식 (사례 감수성, 고정, 부정 등)에 대한 옵션을 포함하는 다른 열 (비트 필드를 사용했다고 생각합니다)이었습니다. 비슷한 접근법이 당신에게 효과가있을 수 있습니다.
제휴하지 않습니다 StackOverflow