我试图用正则表达式将大写字母替换为对应的小写字母。 这
EarTH: 1,
MerCury: 0.2408467,
venuS: 0.61519726,
就变成了
earth: 1,
mercury: 0.2408467,
venus: 0.61519726,
崇高的文本。我怎么能只在包含小写字母和大写字母的单词中小写字母?所以它影响金星而不是金星。
我试图用正则表达式将大写字母替换为对应的小写字母。 这
EarTH: 1,
MerCury: 0.2408467,
venuS: 0.61519726,
就变成了
earth: 1,
mercury: 0.2408467,
venus: 0.61519726,
崇高的文本。我怎么能只在包含小写字母和大写字母的单词中小写字母?所以它影响金星而不是金星。
当前回答
我觉得这对其他人来说也很有用:
发现:
([a - z])(*)。
替换:
\L$1$2—>将$1和$2中的所有字母转换为小写字母 但 \l$1$2—>将只将$1的第一个字母转换为小写字母,其他的都保持不变
大写的\U和\U也是一样
其他回答
试试这个
发现:([a - z]) ([a - z] +) \ b 替换:$ 1 \ L 2美元
确保打开区分大小写(Alt + C)
正则表达式
查找:\w+
替换:\ L $ 0
Sublime Text使用Perl兼容正则表达式(PCRE) Boost库中的引擎,为搜索中的正则表达式提供支持 面板。
\L将所有内容转换为小写
$0捕获组
在使用[A-Z]这样的正则表达式搜索之前,你应该按下区分大小写的按钮(或Alt+C) (leemour很好地建议在接受的答案中进行编辑)。为了明确起见,我还留下了一些其他的例子:
Capitalize words Find: (\s)([a-z]) (\s also matches new lines, i.e. "venuS" => "VenuS") Replace: $1\u$2 Uncapitalize words Find: (\s)([A-Z]) Replace: $1\l$2 Remove camel case (e.g. cAmelCAse => camelcAse => camelcase) Find: ([a-z])([A-Z]) Replace: $1\l$2 Lowercase letters within words (e.g. LowerCASe => Lowercase) Find: (\w)([A-Z]+) Replace: $1\L$2 Alternate Replace: \L$0 Uppercase letters within words (e.g. upperCASe => uPPERCASE) Find: (\w)([A-Z]+) Replace: $1\U$2 Uppercase previous (e.g. upperCase => UPPERCase) Find: (\w+)([A-Z]) Replace: \U$1$2 Lowercase previous (e.g. LOWERCase => lowerCase) Find: (\w+)([A-Z]) Replace: \L$1$2 Uppercase the rest (e.g. upperCase => upperCASE) Find: ([A-Z])(\w+) Replace: $1\U$2 Lowercase the rest (e.g. lOWERCASE => lOwercase) Find: ([A-Z])(\w+) Replace: $1\L$2 Shift-right-uppercase (e.g. Case => cAse => caSe => casE) Find: ([a-z\s])([A-Z])(\w) Replace: $1\l$2\u$3 Shift-left-uppercase (e.g. CasE => CaSe => CAse => Case) Find: (\w)([A-Z])([a-z\s]) Replace: \u$1\l$2$3
对于这个问题(将单词与至少一个大写字母和一个小写字母匹配,并使它们小写),leemour的comment-answer是正确答案。澄清一下,如果只有一个组需要替换,你可以在内部组(即非捕获组)中使用?:,或者完全避免创建它们:
发现:((?):[a - z] [a - z] +) | (?: [a - z] + [a - z]))或([a - z] [a - z] + | [a - z] + [a - z]) 替换:\ L 1美元
2016-06-23编辑
Tyler建议通过编辑这个答案来替换第4个find表达式:
(\ B) ([a - z] +)
根据文档,\B将查找不在单词边界的字符(即不在开头和结尾)。您可以使用Replace All按钮,它所做的事情与您使用(\w)([A-Z]+)作为查找表达式完全相同。
然而,\B的缺点是它不允许单个替换,可能是由于发现的“不边界”限制(如果你知道确切的原因,请编辑这个)。
你可以:
发现:(\ w) 替换为:L$1
或者选择文本,按ctrl+K+L。
我觉得这对其他人来说也很有用:
发现:
([a - z])(*)。
替换:
\L$1$2—>将$1和$2中的所有字母转换为小写字母 但 \l$1$2—>将只将$1的第一个字母转换为小写字母,其他的都保持不变
大写的\U和\U也是一样