是否可以使用正则表达式将“hello_world”等字符串转换为“HelloWorld”并返回?
我问,因为我经常需要为Sublime Text创建片段,当我在其他地方输入“ClassName”时,它会在某处自动填充“class_name”。我只能将perl-style regular expressions用于此目的。
答案 0 :(得分:17)
使用perl正则表达式:
hello_world - >的HelloWorld 强>
s/(_|\b)([a-z])/\u\2/g;
\b
:在边界匹配(空格,字符串开头,标点符号,..)[a-z]
:小写字母\u
:为下一个字符制作大写字母\2
:第2组(第一个小写字母)(_|\b)
- >第1组([a-z])
- >组2 HelloWorld - >程序hello_world 强>
s/([A-Z][a-z]+|[a-z]+)([A-Z])/\l\1_\l\2/g;
Hello
。 s/([A-Z])/_\l\1/g;
,然后使用s/^_//;