^是正則表達式匹配字符串開始位置
$是正則表達式匹配字符串結束位置
很多人始終沒搞清楚這是什么意思,這里用幾個例子看下就一目了然了。
先搞清楚^匹配字符串開始位置(其實就是從字符串左邊第一個字符開始匹配)
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")