正则表达式中^和$

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

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

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

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

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


https://www.cnblogs.com/JimmyBright/p/7205851.html

猜你喜欢

转载自www.cnblogs.com/zhaogaojian/p/9192618.html