是否可以使用正则表达式来下载/下划线字符串?

时间:2013-06-26 11:01:48

标签: regex perl sublimetext

是否可以使用正则表达式将“hello_world”等字符串转换为“HelloWorld”并返回?

我问,因为我经常需要为Sublime Text创建片段,当我在其他地方输入“ClassName”时,它会在某处自动填充“class_name”。我只能将perl-style regular expressions用于此目的。

1 个答案:

答案 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/^_//;