2013-11-28 63 views
1

我想要一個匹配例如'panic can''t happen'作爲panic can''t happen的正則表達式。雙單引號只允許彼此相鄰,'panic can't' happen' sgould可以分爲兩個字符串,panic canhappen正則表達式:匹配字符串內部的雙單引號

到目前爲止我得到了\'[^\']*[\'\']?[^\']\'但它不會按預期工作。

謝謝!

+1

您是否在尋找匹配或拆分? – anubhava

+0

你還使用什麼語言或工具? –

回答

4

你可以嘗試以下方法:

'(?:[^']+|'')+' 
  • ':匹配一個字面'
  • [^']+:匹配一個或多個不是'的字符。
  • '':匹配雙''
  • (?:[^']+|'')+:匹配前面兩個模式中的一個或多個事件。
  • '匹配結束'

Regex101 Demo

+1

+1,因爲它不是一個非常明顯的問題。 – anubhava

+1

@anubhava哈哈。我有點無聊,所以我決定爲什麼不嘗試解決這個問題,但當然,謝謝你。 –

+0

優秀,解決了我的問題! +1額外的解釋:) –

0

那麼使用這種模式將捕獲雙單引號或分裂時,他們沒有彼此相鄰:

PATTERN

'((?:''|[^']+)+)' 

INPUT

'恐慌不能' 發生」

輸出

Match 1: 'panic can' 
Group 1: panic can 

和:

Match 2: ' happen' 
Group 1: happen 

2例

INPUT

'恐慌can''t發生'

輸出

Match 1: 'panic can''t happen' 
Group 1: panic can''t happen 
相關問題