2015-05-04 44 views
2

我想刪除撇號',但只有那些括號之間。正則表達式 - 保留/刪除相同的字符

我的例子是這樣的:

'keep apostrophes' ('remove apostrophes') 

我這樣進行:

[^a-z()\s] 

但隨後刪除所有撇號。我不知道一種將所有東西結合在一起的方法。

+2

您使用的是什麼**語言**? – hwnd

+0

爲什麼不用(和)替換所有的('和')? – panagdu

+0

你可以有這樣的數據嗎? '('foo'和'bar')'? – hwnd

回答

2

請嘗試以下方式:

\('([^']+)'\) 

向後引用,$ 1,將被清除掉單引號的。

Regular expression visualization

工作例如@regex101

更新#1

爲了實現你的第二個請求,請使用以下模式:

'([^']+)'\s*(?=(?:\sand|\sor|\))) 

Regular expression visualization

工作例如@regex101

  • 積極前瞻的使用,以中'words'所有出場精確匹配內部'()'
  • 正則表達式的該任務的用法overkilling。 (什麼編程語言您使用來執行這個任務?)
+0

如果你有以下文字:'保留撇號'('刪除撇號'和'一些更多') – panagdu

+0

它只是刪除了整個表達式:('刪除撇號') - 我只是想這樣的結局:'保留撇號'(去除撇號)。請參閱下面的幫助我的答案。 – coy8149

+1

@demostene;請看我的答案更新。 – Eder

1
'(?=[^(]*\)) 

您可以通過empty string使用lookahead here.See demo.Replace。

https://regex101.com/r/uE3cC4/28

+0

謝謝你的超鏈接。我__喜歡這個工具 – lanenok

+0

@lanenok歡迎:) – vks

+0

真棒,正是我所需要的!我將嘗試瞭解你的正則表達式如何工作。謝謝。 – coy8149

相關問題