^是正则表达式匹配字符串开始位置
$是正则表达式匹配字符串结束位置
很多人始终没搞清楚这是什么意思,这里用几个例子看下就一目了然了。
先搞清楚^匹配字符串开始位置(其实就是从字符串左边第一个字符开始匹配)
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 8110651405410 81106405611 8110651405612 8110651413213 8110651413214 8110651413615 8110651413616 8110651413717 81106513718 8110651413819 8110651413820 8110651413921 811065141391312322 8303000007623 8303000007624 8303000009625 8303000009626 8303000031612327 8303000048328 83030000485429 8303000048930 8303000053331 8303000132332 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")