2016-08-02 5 views
1

PCRE 8.39의 MariaDB 10.0.26에서 실행 중입니다.단어 그룹이 처음으로 나타나는 경우 데이터 표현식에서 제외하십시오.

프린터, 카트리지, 토너 세트, 키트 또는 번들을 제외하고 싶습니다.

(?<items>Printer|Cartridge|Toner)(?<sets>Kit|Bundle|Set)(?(?=\g<items>)(?!\g<sets>)) 

명명 된 그룹별로 문제, 난 그냥 모든 것을려고한다 :

그래서 나는 이것을 썼다.

단순히 내가이 표현을 원하는 말 :

titleField regexp '(?<items>Printer|Cartridge|Toner)(?<sets>Kit|Bundle|Set)(?(?=\g<items>)(?!\g<sets>))' to return 0 and not 1. 

내가 뭘 잘못 손실이 시점에서 나는,이 가치있는 뭔가 마른 세수해야합니다 비록 (~ ~!!). 도와주세요.

+0

너는 네거티브 lookbehind를 찾고있는 것처럼 보이지만, 너는 알 수없는 너비가 될 수 없다.'^ (?!. * (Printer | Cartridge | Toner). * (Kit | Bundle | Set)). * (Kit | Bundle | Set)' –

+0

Wiktor, 정답으로 받아 들일 수 있도록 답장을 보내주십시오. ^ (프린터 카트리지 | 토너). * (키트 | 번들 | 세트) 분명히 두 번째 부분을 두 번 복사했습니다. 도움을 주셔서 감사합니다. –

답변

1

당신은 문자열 Printer, Cartridge 또는 Toner ((Printer|Cartridge|Toner))를 포함하면 줄 바꿈 (.*) 이외의 0+ 문자 후 어딘가에서 경기를 실패합니다

^(?!.*(Printer|Cartridge|Toner).*(Kit|Bundle|Set)) 

룩어 (?!.*(Printer|Cartridge|Toner).*(Kit|Bundle|Set))를 사용할 수 있습니다.

the regex here을 테스트 할 수 있습니다.