php – 如何将PascalCase转换为pascal_case?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何将PascalCase转换为pascal_case?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我有

$string = "PascalCase";

我需要

"pascal_case"

PHP是否为此提供了功能

解决方法

试试这个尺码:

$tests = array(
  'simpleTest' => 'simple_test','easy' => 'easy','HTML' => 'html','simpleXML' => 'simple_xml','PDFLoad' => 'pdf_load','startMIDDLELast' => 'start_middle_last','AString' => 'a_string','Some4Numbers234' => 'some4_numbers234','test123String' => 'test123_string',);

foreach ($tests as $test => $result) {
  $output = From_camel_case($test);
  if ($output === $result) {
    echo "Pass: $test => $result\n";
  } else {
    echo "Fail: $test => $result [$output]\n";
  }
}

function from_camel_case($input) {
  preg_match_all('!([A-Z][A-Z0-9]*(?=$|[A-Z][a-z0-9])|[A-Za-z][a-z0-9]+)!',$input,$matches);
  $ret = $matches[0];
  foreach ($ret as &$match) {
    $match = $match == strtoupPEr($match) ? strtolower($match) : lcFirst($match);
  }
  return implode('_',$ret);
}

输出

Pass: simpleTest => simple_test
Pass: easy => easy
Pass: HTML => html
Pass: simpleXML => simple_xml
Pass: PDFLoad => pdf_load
Pass: startMIDDLELast => start_middle_last
Pass: AString => a_string
Pass: Some4Numbers234 => some4_numbers234
Pass: TEST123String => test123_string

这实现了以下规则:

>以小写字母开头的序列必须后跟小写字母和数字;
>以大写字母开头的序列可以跟随:

>一个或多个大写字母和数字(后跟字符串的结尾或大写字母后跟小写字母或数字,即下一个序列的开头);要么>一个或多个小写字母或数字.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何将PascalCase转换为pascal_case?全部内容,希望文章能够帮你解决php – 如何将PascalCase转换为pascal_case?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。