是否可以将驼峰式案例字符串解析为更易读的内容。

例如:

  • LocalBusiness =本地业务
  • CivicStructureBuilding =市政结构大楼
  • getUserMobilePhoneNumber =获取用户手机号码
  • bandGuitar1 =乐队吉他1

  • 更新

    使用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');
    

    最佳答案

    PHP手册中str_split的用户注释中有一些示例。

    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>';
    }
    

    关于php - 如何将驼峰案例解析为人类可读的字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6254093/

    10-11 08:07