正则表达式用小写字母替换大写

时间:2013-12-23 10:56:40

标签: sublimetext2 sublimetext sublimetext3

我正在尝试使用正则表达式将大写字母替换为相应的小写字母。 那么

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

变为

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

在Sublime Text中。如何只在包含小写和大写字母的单词中包含字母?因此它影响venUs而非VENUS

6 个答案:

答案 0 :(得分:305)

你可以:

查找:(\w) 替换为:\L$1

或选择文字, ctrl + K + L

答案 1 :(得分:104)

我认为这对其他人来说也可能派上用场了:

找到:

  • ([A-Z])(.*)

取代:

  • \L$1$2 - >会将$1$2中的所有字母转换为小写字母 的 BUT
  • \l$1$2 - >只会将$1的第一个字母转换为小写,并将其他所有内容保留为

\U\u

的大写字母也是如此

答案 2 :(得分:72)

在使用[A-Z]这样的正则表达式进行搜索之前,您应按区分大小写的按钮(或 Alt + C )(如要在接受的答案中编辑leemour nicely suggested)。为了清楚起见,我要留下一些其他的例子:

  1. Capitalize
    • 查找:(\s)([a-z])\s也匹配新行,即“venuS”=>“VenuS”)
    • 替换:$1\u$2
  2. 取消大写字样
    • 查找:(\s)([A-Z])
    • 替换:$1\l$2
  3. 删除camel case (例如cAmelCAse => camelcAse => camelcase)
    • 查找:([a-z])([A-Z])
    • 替换:$1\l$2
  4. 单词中的小写字母(例如LowerCASe =>小写)
    • 查找:(\w)([A-Z]+)
    • 替换:$1\L$2
    • 替代替换:\L$0
  5. 字词内的大写字母(例如upperCASe => uPPERCASE)
    • 查找:(\w)([A-Z]+)
    • 替换:$1\U$2
  6. 大写字母(例如upperCase => UPPERCase)
    • 查找:(\w+)([A-Z])
    • 替换:\U$1$2
  7. 以前的小写(例如LOWERCase => lowerCase)
    • 查找:(\w+)([A-Z])
    • 替换:\L$1$2
  8. 大写其余(例如upperCase => upperCASE)
    • 查找:([A-Z])(\w+)
    • 替换:$1\U$2
  9. 小写其余(例如lOWERCASE => lOwercase)
    • 查找:([A-Z])(\w+)
    • 替换:$1\L$2
  10. Shift-right-uppercase (例如Case => cAse => caSe => casE)
    • 查找:([a-z\s])([A-Z])(\w)
    • 替换:$1\l$2\u$3
  11. Shift-left-uppercase (例如CasE => CaSe => CAse => Case)
    • 查找:(\w)([A-Z])([a-z\s])
    • 替换:\u$1\l$2$3
  12. 关于问题(匹配至少包含一个大写和一个小写字母的单词并将其设为小写),leemour's comment-answer正确答案。只是为了澄清,如果只有一个要替换的组,您可以在内部组中使用?:(即non capture groups)或者完全避免创建它们:

    • 查找:((?:[a-z][A-Z]+)|(?:[A-Z]+[a-z]))([a-z][A-Z]+|[A-Z]+[a-z])
    • 替换:\L$1

    2016-06-23编辑

    Tyler通过编辑此答案建议#4的替代查找表达式:

    • (\B)([A-Z]+)

    根据documentation\B将查找不在单词边界的字符(即不在开头而不是在结尾)。您可以使用全部替换按钮,它就像使用(\w)([A-Z]+)作为查找表达式一样。

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

答案 3 :(得分:2)

正则表达式

<强>查找\w+

<强>替换\L$0

  

Sublime Text使用Perl兼容正则表达式(PCRE)   来自Boost库的引擎为搜索中的正则表达式提供动力   面板。

\L将所有内容转换为小写

$0捕获群组

答案 4 :(得分:1)

在BBEdit中可以做到这一点(例如:将ID值更改为小写):

搜索任何值:<a id="(?P<x>.*?)"></a> 用小写字母替换:<a id="\L\P<x>\E"></a>

原是:<a id="VALUE"></a> 成为:<a id="value"></a>

答案 5 :(得分:0)

试试这个

  • 查找:([A-Z])([A-Z]+)\b
  • 替换:$1\L$2

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