2017-08-16 91 views
1

崇高我在我的文件中像這樣的字符串的長列表(約10萬行):替換字符串外「」只有在使用正則表達式

job_title <- map["job_title"] 
.... 

我想要做一些置換,使其像這樣:

jobTitle <- map["job_title"] 

,所以我只是更換_tT,但我只想要左側。

+3

你試過了什麼?請顯示您嘗試過的代碼。 –

+0

我不知道該怎麼嘗試=/ – iori24

回答

2

如果用T替換_t,你將取代_t所有出現T不管上下文。

你可能會嘗試的是匹配所有"..."子串並跳過它們,然後匹配_後面的任何字母並將其轉換爲大寫。如何匹配"..."子串取決於轉義實體是否可能出現在您的文本中。

如果不能有任何轉義引號,

搜索"[^"]*"(*SKIP)(?!)|_([A-Za-z])
更換\u$1

如果有可以逃脫引號:

搜索"[^"\\]*(?:\\.[^"\\]*)*"(*SKIP)(?!)|_([A-Za-z])
更換\u$1

enter image description here

詳細

  • "[^"\\]*(?:\\.[^"\\]*)*"(*SKIP)(?!) - 一個"..."子(它匹配",那麼任何0+字符比任何"\然後0+序列等溢出字符(\\.)後面跟除"\之外的任何0+字符,然後"),其被匹配,然後從匹配省略,並且下一個匹配當前匹配(由於(*SKIP)(?!)
  • |結束後搜尋 - 或
  • _ - 一個_
  • ([A-Za-z]) - 捕獲組1:任何ASCII字母

\u運營商在更換使得後大寫的第一個字符。 $1代表用([a-zA-Z])拍攝的字母。

+0

OMG。完美地工作!謝謝Wiktor。你是天才 – iori24

0

。在你的情況下,沒有必要正則表達式(按Ctr + H和替換所有)與

更換

job_title < 

jobTitle < 
+0

我想你得到我的意思。如果你使用它,它會替換這兩個字符串。 OMG。 – iori24