2017-01-13 22 views
1

使用記事本+ +我想找到的所有字符串中的雙引號開始expr(與最近的)結束,像查找括號通過特定的表達之前之間的所有雙引號

expr("hi","",0) 

,以取代這些用單引號,如下

expr('hi','',0) 

此字符串,可以發現在一個較長的文本好幾次都是

bla="asd" expr("hello","",0) something something expr("bye","",0) something "later" etc 

我試了幾個正則表達式都無濟於事,就像

(?<=expr\()("*?)(?=\)) 

我需要做的這幾個文件,所以這就是爲什麼我用記事本+ +。

這可能嗎? 請幫忙。

+0

嘗試'(:\ G(^),? | \ bexpr \()\ K 「((?:[^」?!\\] | \\)* )「' - >'' $ 1''' –

回答

1

您的正則表達式只匹配0+雙引號,緊跟在expr(之後,緊接着是)

我建議使用下面的正則表達式:

(?:\G(?!^)\s*,\s*|\bexpr\()\s*\K"((?:[^"\\]|\\.)*)" 

'$1'取代。

詳細

  • (?:\G(?!^)\s*,\s*|\bexpr\() - 整字expr(\bexpr\()或以前的成功匹配+逗號的封閉與0+空格(\G(?!^)\s*,\s*
  • \s*結束 - 0+空格
  • \K - 省略了目前匹配的文字
  • " - a雙引號
  • ((?:[^"\\]|\\.)*) - 第1組捕獲雙引號的字符串文字(0+字符比"\(與其他[^"\\])或任何轉義序列(\\.
  • " - 雙引號

見截圖:

enter image description here

+0

Wiktor,謝謝你的解釋。我會盡力讓你知道! – Dick

+1

Wiktor,我想出了正則表達式,並學到了新的東西:)非常好!再次感謝。 – Dick

相關問題