栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

怎么把PascalCase转换成pascal_case?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

怎么把PascalCase转换成pascal_case?

尝试以下尺寸:

$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 => $resultn";  } 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_testPass: easy => easyPass: HTML => htmlPass: simpleXML => simple_xmlPass: PDFLoad => pdf_loadPass: startMIDDLELast => start_middle_lastPass: AString => a_stringPass: Some4Numbers234 => some4_numbers234Pass: TEST123String => test123_string

这实现了以下规则:

  1. 以小写字母开头的序列后必须跟小写字母和数字;
  2. 以大写字母开头的序列后面可以是:
    • 一个或多个大写字母和数字(后跟字符串的结尾或大写字母,后跟小写字母或数字,即下一个序列的开头);要么
    • 一个或多个小写字母或数字。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386427.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号