zoukankan      html  css  js  c++  java
  • 关于正则表达式中^和$

    ^是正则表达式匹配字符串开始位置

    $是正则表达式匹配字符串结束位置

    很多人始终没搞清楚这是什么意思,这里用几个例子看下就一目了然了。

    先搞清楚^匹配字符串开始位置(其实就是从字符串左边第一个字符开始匹配)

    1 $str='http://blog.seetiny.com';
    2 $pattern='/^blog/';  /*因为/为特殊字符*/
    3 $str=preg_replace($pattern,'jimmy',$str);
    4 echo $str;die;

    上面的输出是:

    http://blog.seetiny.com/

    改造一下:

    1 $str='http://blog.seetiny.com';
    2 $pattern='/^http/';  /*因为/为特殊字符*/
    3 $str=preg_replace($pattern,'jimmy',$str);
    4 echo $str;die;

    输出:

    jimmy://blog.seetiny.com/

    可以看到在已^开始的正则,只从左边第一个字符匹配,如果没匹配到,那整个匹配就是失败的

    再看$匹配字符串的结束位置

    1 $str='http://blog.seetiny.com';
    2 $pattern='/com$/';  /*因为/为特殊字符*/
    3 $str=preg_replace($pattern,'jimmy',$str);
    4 echo $str;die;

    输出:

    http://blog.seetiny.jimmy

    再看一个例子

    1 $str='http://blog.seetiny.com';
    2 $pattern='/iny$/';  /*因为/为特殊字符*/
    3 $str=preg_replace($pattern,'jimmy',$str);
    4 echo $str;die;

    输出:

    http://blog.seetiny.com

    看看同时使用^和$是什么意思呢

    1 $str='http://blog.seetiny.com';
    2 $pattern='/^iny$/';  /*因为/为特殊字符*/
    3 $str=preg_replace($pattern,'jimmy',$str);
    4 echo $str;die;

    输出:

    http://blog.seetiny.com

    改成

    1 $str='http://blog.seetiny.com';
    2 $pattern='/^http://blog.seetiny.com$/';  /*因为/为特殊字符*/
    3 $str=preg_replace($pattern,'jimmy',$str);
    4 echo $str;die;

    输出:

    jimmy

    结合例子看,用法就一目了然了,^和$用处非常多,常见的就是使用sublime编辑给每行文本开始和技术加引号,括号逗号什么的,非常方便

    例如有一堆字符串要写SQL插入到数据库

     1 85353001071
     2 85353001071
     3 85959001280
     4 81106513888
     5 81106513888
     6 81106513888
     7 81106513888
     8 81106514054
     9 81106514054
    10 811064056
    11 81106514056
    12 81106514132
    13 81106514132
    14 81106514136
    15 81106514136
    16 81106514137
    17 811065137
    18 81106514138
    19 81106514138
    20 81106514139
    21 8110651413913123
    22 83030000076
    23 83030000076
    24 83030000096
    25 83030000096
    26 83030000316123
    27 83030000483
    28 830300004854
    29 83030000489
    30 83030000533
    31 83030001323
    32 83030000610

    通过sublime非常简单的就能处理成下面的样子

     1 ("85353001071",
     2 "85353001071",
     3 "85959001280",
     4 "81106513888",
     5 "81106513888",
     6 "81106513888",
     7 "81106513888",
     8 "81106514054",
     9 "81106514054",
    10 "811064056",
    11 "81106514056",
    12 "81106514132",
    13 "81106514132",
    14 "81106514136",
    15 "81106514136",
    16 "81106514137",
    17 "811065137",
    18 "81106514138",
    19 "81106514138",
    20 "81106514139",
    21 "8110651413913123",
    22 "83030000076",
    23 "83030000076",
    24 "83030000096",
    25 "83030000096",
    26 "83030000316123",
    27 "83030000483",
    28 "830300004854",
    29 "83030000489",
    30 "83030000533",
    31 "83030001323",
    32 "83030000610")
  • 相关阅读:
    BDB
    nginx配置文件祥解
    区分虚方法,抽象方法如此简单
    nginx+tomcat集群负载均衡(实现session复制)
    nginx配置conf
    高手博客 网址收藏
    IE6,7,8下使用Javascript记录光标选中范围(已补全)(已解决单个节点内部重复字符的问题)
    (造福中国前端界)纯前端Js完美解决各种汉字urlencode,urldecode,编码解码问题,不借助任何字库,内码表,轻松一行,兼容IE8+,chrome,firefox,safari等主流浏览器
    共享两个最近手机项目的HTML5的widget,星星评级以及标签选项卡,样式美观,iphone/android可用
    共享下改进后的combox,页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
  • 原文地址:https://www.cnblogs.com/JimmyBright/p/7205851.html
Copyright © 2011-2022 走看看