正则expression式用大写字母replace大写字母

我试图用正则expression式replace大写字母和相应的小写字母。 以便

EarTH: 1, MerCury: 0.2408467, venuS: 0.61519726, 

 earth: 1, mercury: 0.2408467, venus: 0.61519726, 

在崇高的文本。 我怎样才能在包含大写字母和小写字母的单词中使用小写字母? 所以它影响venUs而不是VENUS

你可以:

find: (\w)replace为: \L$1

或者select文本,按Ctrl + K + L。

我想这对其他人也可能会派上用场:

找:

  • ([AZ])(.*)

更换:

  • \L$1$2 – >会将$1$2转换为小写
  • \l$1$2 – >只会将$1转换$1小写,并保留原来的$2

\U\u大写字母也是一样的

在用[AZ]类的正则expression式search之前,你应该按下区分大小写的button (或Alt + C )( 好的build议在接受的答案中编辑)。 只是要清楚,我要留下一些其他的例子:

  1. 大写词汇
    • find: (\s)([az])\s也匹配新行,即“venuS”=>“VenuS”)
    • replace: $1\u$2
  2. 没有资本的话
    • 查找: (\s)([AZ])
    • replace: $1\l$2
  3. 删除骆驼案例 (例如cAmelCAse => camelcAse => camelcase)
    • 查找: ([az])([AZ])
    • replace: $1\l$2
  4. 小写字母 (例如LowerCASe =>小写字母
    • 查找: (\w)([AZ]+)
    • replace: $1\L$2
    • 交替replace: \L$0
  5. 单词中的大写字母 (例如upperCASe => uPPERCASE)
    • 查找: (\w)([AZ]+)
    • replace: $1\U$2
  6. 大写以前 (例如upperCase => UPPERCase)
    • 查找: (\w+)([AZ])
    • replace: \U$1$2
  7. 前面的小写 (例如LOWERCase => lowerCase)
    • 查找: (\w+)([AZ])
    • replace: \L$1$2
  8. 大写其余 (例如upperCase => upperCASE)
    • 查找: ([AZ])(\w+)
    • replace: $1\U$2
  9. 其余的小写 (例如lOWERCASE => 100wase)
    • 查找: ([AZ])(\w+)
    • replace: $1\L$2
  10. 按右移大写 (例如:Case => cAse => caSe => casE)
    • 查找: ([az\s])([AZ])(\w)
    • replace: $1\l$2\u$3
  11. 左移大写 (例如,CasE => CaSe => CAse => Case)
    • 查找: (\w)([AZ])([az\s])
    • replace: \u$1\l$2$3

关于这个问题( 至less匹配一个大写字母和一个小写字母的单词,并使它们成为小写字母), leemour的评论答案是正确的答案 。 只是为了澄清,如果只有一个组要replace,你可以在内部组(即非捕获组 )中使用?:或者避免创build它们:

  • 查找: ((?:[az][AZ]+)|(?:[AZ]+[az])) OR ([az][AZ]+|[AZ]+[az])
  • replace: \L$1

2016-06-23编辑

泰勒build议通过编辑这个答案替代查找expression式#4:

  • (\B)([AZ]+)

根据文档 , \B将寻找一个不在单词边界的字符(即不在开始而不在结尾)。 您可以使用“ 全部replace”button,它和查找expression式(\w)([AZ]+)完全相同。

然而, \B的缺点是它不允许单个replace,可能是由于find了 “非边界”的限制(如果知道确切的原因,请做编辑)。

尝试这个

  • find: ([AZ])([AZ]+)\b
  • replace: $1\L$2

确保区分大小写(Alt + C)