2014-01-16 64 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

它是如何從這個列表中:這是(例如,一個引號後面跟着一個或幾個字母)',(例如,一個引號跟着標點符號)'(例如,一個引號後面跟一個空格) 。提取選擇:這是(inchanged)那'(刪除了標點符號)那'(下面的空格未被刪除)那(不變) - – Denis

0

是的,這是確定的:\bbill\b(?!') keyworlds:(?!EXP)\ W

相關問題