2014-01-16 3 views
0

저는 regexp에 매우 익숙하며 NSRegularExpression에 대한 패턴을 만들려고했습니다. 주어진 문자열에서 키워드에 해당하는 전체 단어를 추출하고 싶지만이 키워드에 작은 따옴표가없는 경우에만 추출합니다. 은 "법안"키워드에 대한 정규식 뒤에 작은 따옴표가 붙는 단어를 제외하는 정규식

, 내 문자열에 도움을

감사

bill 
bill, 
bill! 

but not 

bill's 
billy 
billboard 
의 발생을 추출해야합니다!

답변

1

다음 트릭을 수행해야합니다.

NSString *pattern = @"\\bbill\\b(?!')"; 

정규 표현식 :

\b    the boundary between a word char (\w) and not a word char 
bill   'bill' 
\b    the boundary between a word char (\w) and not a word char 
(?!   look ahead to see if there is not: 
    '   '\'' 
)    end of look-ahead 

그러나, 당신의 패턴으로 당신에게 키워드 데이터 나 변수를 배치합니다.

\\bKEYWORD\\b(?!') 

Live demo

+0

덕분에 많이, 내가 필요한 일치합니다. 전에 여러 곳에서 시도했는데 하나의 인스턴스에서 잘못된 형식의 패턴을 가졌기 때문에 작동하지 않았습니다 ... 또한 빌의 s에서 추출 할 수 있습니다 .-- 다시 한번 감사드립니다! – Denis

+0

그리고이 목록에서 어떻게 할 수 있겠습니까? 예 (예 : 따옴표 다음에 하나 또는 여러 문자로) 그 '(예 : 따옴표 뒤에 문장 부호가옵니다)'(예 : 따옴표 뒤에 공백이 있음) 그게 .. . 선택을 추출하는 : 그 (변경) 그 '(구두점 제거) 그'(제거되지 않은 공백) 그 (변경되지 않음) - – Denis

0

예,이 괜찮 참조 : \bbill\b(?!') keyworlds : (?! 특급) w \