2015-03-02 50 views
-3

我必須確保字符串中沒有單個'字符。因此,我正在尋找一個正則表達式,它可以找到所有單個字符。兩個''必須不匹配。正則表達式檢測單個'僅限且排除兩個''

'adsfadsf''asdfasdf'asdfasfd'' ==> two machtes 
''adsfadsf''asdfasdf''asdfasfd'' ==> no match 

我試過不同的東西,但都匹配''

'{1} 
'[^'] 
'(?!') 

任何想法?

+2

什麼味道*正則表達式的*匹配的單引號?它很重要(有些人有負面看法/有些看不到)。你想對結果做什麼? (這也可能很重要,就實用的解決方案而言,你不能只用正則表達式來實現,因爲你沒有消極的後顧之憂。) – 2015-03-02 08:31:04

+0

你可以給這個問題更多的背景嗎?你爲什麼要這樣做? – 2015-03-02 09:03:51

+0

在主題的開頭和結尾處添加了匹配的負向預測,即'^'''或'''$'。 – 2015-03-02 09:13:43

回答

0

你可以試試下面的基於lookaround的正則表達式。

(?<!')'(?!') 

DEMO

如果你正在運行的JavaScript,那麼你可以試試下面的正則表達式。但它也會捕獲前一個角色,我認爲它不會爲您造成任何問題。

(^|[^'])(')(?!') 

DEMO

獲得來自組索引2

+0

或'''(* SKIP)(* F)|'' – 2015-03-02 08:42:22

+0

對不起,我忘了提及,我需要JavaScript的正則表達式。 Lookbehind,* SKIP或* F不支持JavaScript。 – BetaRide 2015-03-02 09:02:00

+1

@BetaRide這是Crowder剛剛問到的原因。爲什麼你沒有在同一時間進行互動? – 2015-03-02 09:07:30