替换字符串外“”只有在使用正则表达式

替换字符串外“”只有在使用正则表达式

问题描述:

崇高我在我的文件中像这样的字符串的长列表(约10万行):替换字符串外“”只有在使用正则表达式

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

我想要做一些置换,使其像这样:

jobTitle <- map["job_title"] 

,所以我只是更换_tT,但我只想要左侧。

+3

你试过了什么?请显示您尝试过的代码。 –

+0

我不知道该怎么尝试=/ – iori24

如果用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

。在你的情况下,没有必要正则表达式(按Ctr + H和替换所有)与

更换

job_title < 

jobTitle < 
+0

我想你得到我的意思。如果你使用它,它会替换这两个字符串。 OMG。 – iori24

用下面的正则表达式,你只是比赛第一个_t

(?<=^job)_(\w) 

所以你可以替换成T.

https://regex101.com/r/VcpAzt/1