驼峰格式和下划线格式转换_translation between camel and snake format

 

驼峰格式和下划线格式转换_translation between camel and snake format

 

#1 驼峰转下划线格式

这个我一开始找了找现成的方法,比如这里:http://www.iteye.com/topic/1118302,但一眼看过去就非常的麻烦,难道这个操作要写好几十行代码么,我可很懒哦。

后来想到用正则直接处理。

>> $className = "HelloWorldRuby";

>> $snakeTableName = preg_replace('/(?<!\b)(?=[A-Z])/', "_", $className);

>> print_r($snakeTableName);
Hello_World_Ruby

>> $snakeTableNameLower = strtolower($snakeTableName);

>> print_r($snakeTableNameLower);
hello_world_ruby
 
1.9.3p194 :022 > className = "HelloWorldRuby"
 => "HelloWorldRuby" 
1.9.3p194 :023 > #classNameSnake = className.gsub(/(?<!\b)(?=[A-Z])/, "_"); #=> Error ruby的逆序环视支持不好
1.9.3p194 :024 >   classNameSnake = className.gsub(/(?=[A-Z])/, "_")
 => "_Hello_World_Ruby" 
1.9.3p194 :025 > classNameSnakeLower = classNameSnake.downcase[1..-1]
 => "hello_world_ruby"
 

蛇行转驼峰格式

这个其实就比较好做了,因为下划线作为分隔符号,可以方便的分出来。

但如果用正则的话,怎么做呢:

>>         $s = "hello_world_ruby";

>>         $s2 = preg_replace('/(?:^|_)([a-z])/e', "strtoupper('\\1')", $s);

>> print_r($s2)
HelloWorldRuby

 

1.9.3p194 :055 > s = "hello_world_ruby"
 => "hello_world_ruby" 
1.9.3p194 :056 > s.gsub(/(?:^|_)([a-z])/e, '\1')
 => "helloworldruby"

ruby中的替换没有/e选项,php和perl都有。

所以这里就不知道替换的时候如何对分组应用函数了(或者用ruby的话是应用block)?

谁知道的,请告知下吧!谢谢!

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值