zoukankan      html  css  js  c++  java
  • 驼峰字符串转换成下划线样式

    // 驼峰字符串转换成下划线样式
    $str = 'openAPI';
    echo $str."<BR>";
    echo strtolower(preg_replace('/((?<=[a-z])(?=[A-Z]))/', '_', $str)).'<br>';
    //open_ap

    正则表达式补充:

    ?: 不想被捕获的时候使用 可以提高程序执行速度
    $string = 'April 15, 2003';
    $pattern = '/(w+) (d+), (d+)/i';
    $replacement = '${1}1,$3';
    echo preg_replace($pattern, $replacement, $string); 
    // 结果显示  April1,2003
    
    这里就用了反向引用   
    $replacement  里的 ${1} 代表  (w+)  ,    $3代表 第2个 (d+)
    这个正则表达式 里 一共有 3个 ()  也就是  可以  用 $1  $2  $3  调用 3个()里的 内容。
    
    也可以使用 1    2    3 来 代替  $1  $2  $3  都是一样的
    
    那接下来 如果把 代码里的 正则表达式 改成下面的
    
    $pattern = '/(?:w+) (?:d+), (d+)/i'; 
    那 这里  只有 一个 () 里的 内容 能使用 
    带 ?:的 ()里面内容是不会被 捕获的  ,所以 只能使用 $1 代表最后的 (d+)
    ?= / ?<=  这个叫断言,只匹配一个位置

    比如,你想匹配一个“人”字,但是你只想匹配中国人的人字,不想匹配法国人的人
    就可以用一下表达式
    (?=中国)人
    所以,楼主的表达式与其他通配符连用才能起到效果。
    (?=.*[a-z])d+
    这个就表示 匹配以“任意字符连着一个小写字母”开头的数字,只匹配数字。

    (?<=exp)这个是放后面的。
  • 相关阅读:
    C语言I博客作业09
    C语言I博客作业08
    C语言I作业07
    C语言博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
    C语言|博客作业07
    C语言|博客作业06
    C语言|博客作业05
  • 原文地址:https://www.cnblogs.com/leezhxing/p/4021673.html
Copyright © 2011-2022 走看看