如何解析骆驼案例人类可读的字符串?
是否可以将骆驼大小写字符串解析为更具可读性的内容。如何解析骆驼案例人类可读的字符串?
例如:
- LocalBusiness =本地商户
- CivicStructureBuilding =文娱结构建筑
- getUserMobilePhoneNumber =获取用户手机号码
- bandGuitar1 =乐队吉他1
UPDATE
使用正则表达式simshaun例如我设法从文本与本规则分开编号:
function parseCamelCase($str)
{
return preg_replace('/(?!^)[A-Z]{2,}(?=[A-Z][a-z])|[A-Z][a-z]|[0-9]{1,}/', ' $0', $str);
}
//string(65) "customer ID With Some Other JET Words With Number 23rd Text After"
echo parseCamelCase('customerIDWithSomeOtherJETWordsWithNumber23rdTextAfter');
有在str_split的PHP手册,用户评论的一些例子。
从Kevin:
<?php
$test = 'CustomerIDWithSomeOtherJETWords';
preg_replace('/(?!^)[A-Z]{2,}(?=[A-Z][a-z])|[A-Z][a-z]/', ' $0', $test);
而且这里的东西我写来满足您的职位的要求:
<?php
$tests = array(
'LocalBusiness' => 'Local Business',
'CivicStructureBuilding' => 'Civic Structure Building',
'getUserMobilePhoneNumber' => 'Get User Mobile Phone Number',
'bandGuitar1' => 'Band Guitar 1',
'band2Guitar123' => 'Band 2 Guitar 123',
);
foreach ($tests AS $input => $expected) {
$output = preg_replace(array('/(?<=[^A-Z])([A-Z])/', '/(?<=[^0-9])([0-9])/'), ' $0', $input);
$output = ucwords($output);
echo $output .' : '. ($output == $expected ? 'PASSED' : 'FAILED') .'<br>';
}
使用正则表达式表达。在java中这样的事情
String[] r = s.split("(?=\\p{Lu})");
获取你最的方式而不是getUserMobilePhoneNumber =获取用户手机号码
会在结果中使用'ucwords()'让你穿越终点线? – preinheimer 2011-06-06 15:19:03
为什么这个答案是downvoted? 授予它不是一个完整的解决方案,但它是一个更聪明的方法的例子,也将支持其他字母。 ('p {Ll})(\ p {Lu})〜u','$ {1} $ {2}','someCamelCaseText'),MB_CASE_TITLE,“UTF-8”) ;' 适用于拉丁文,西里尔文,希腊文或任何其他字母表,它具有字母大小写的概念,与CamelCase方法兼容。 – Docal 2017-01-19 12:06:10
感谢,但它是可以分离的数字? – Nazariy 2011-06-06 15:17:23
当然可以。编辑。 – simshaun 2011-06-06 15:34:18
@dynamic ...有什么建议吗? – greaterKing 2015-01-04 05:08:15