我正在尝试使用正则表达式将大写字母替换为相应的小写字母.以便
EarTH: 1, MerCury: 0.2408467, venuS: 0.61519726,
变
earth: 1, mercury: 0.2408467, venus: 0.61519726,
在Sublime Text中.如何只在包含小写和大写字母的单词中包含字母?这样它影响venUs
而不影响VENUS
.
你可以:
查找:(\w)
替换为:\L$1
或者选择文字ctrl+ K+ L.
我认为这对其他人来说也可能派上用场:
找:
([A-Z])(.*)
更换:
\L$1$2
- >将所有字母转换成$1
并$2
为小写
BUT
\l$1$2
- >只会将第一个字母转换$1
为小写,并保留其他所有内容
对于带有\U
和的大写字母也是如此\u
在使用正则表达式搜索之前[A-Z]
,您应该按下区分大小写的按钮(或Alt+ C)(因为lemyour建议在接受的答案中进行编辑).为了清楚起见,我要留下一些其他的例子:
大写单词
发现:(\s)([a-z])
(\s
也匹配新行,即,"金星" =>"金星")
更换: $1\u$2
没有资本的话
找: (\s)([A-Z])
更换: $1\l$2
去除驼峰病例(例如cAmelCAse => camelcAse => camelcase)
找: ([a-z])([A-Z])
更换: $1\l$2
单词中的小写字母(例如LowerCASe => Lowercase)
找: (\w)([A-Z]+)
更换: $1\L$2
替代替换: \L$0
单词中的大写字母(例如upperCASe => uPPERCASE)
找: (\w)([A-Z]+)
更换: $1\U$2
大写之前(例如upperCase => UPPERCase)
找: (\w+)([A-Z])
更换: \U$1$2
小写以前(例如LOWERCase => lowerCase)
找: (\w+)([A-Z])
更换: \L$1$2
大写其余部分(例如upperCase => upperCASE)
找: ([A-Z])(\w+)
更换: $1\U$2
小写其余部分(例如lOWERCASE => lOwercase)
找: ([A-Z])(\w+)
更换: $1\L$2
Shift-right-uppercase(例如Case => cAse => caSe => casE)
找: ([a-z\s])([A-Z])(\w)
更换: $1\l$2\u$3
Shift-left-uppercase(例如CasE => CaSe => CAse => Case)
找: (\w)([A-Z])([a-z\s])
更换: \u$1\l$2$3
关于问题(匹配至少有一个大写和一个小写字母的单词,并使它们小写),leemour的评论答案是正确的答案.只是为了澄清,如果只有一个组可以替换,你可以只使用?:
内部组(即非捕获组)或完全避免创建它们:
发现:((?:[a-z][A-Z]+)|(?:[A-Z]+[a-z]))
或([a-z][A-Z]+|[A-Z]+[a-z])
更换: \L$1
Tyler通过编辑此答案建议#4的替代查找表达式:
(\B)([A-Z]+)
根据文档,\B
将查找不在单词边界的字符(即不在开头而不是在结尾).您可以使用" 全部替换"按钮,它与完成相同的操作就像(\w)([A-Z]+)
查找表达式一样.
然而,缺点\B
是它不允许单个替换,可能是由于发现的"非边界"限制(如果你知道确切原因,请编辑这个).