^是正则表达式匹配字符串开始位置
$是正则表达式匹配字符串结束位置
很多人始终没搞清楚这是什么意思,这里用几个例子看下就一目了然了。
先搞清楚^匹配字符串开始位置(其实就是从字符串左边第一个字符开始匹配)
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")