[正则]关于字符串^和$的使用
^是正则表达式匹配字符串开始位置。$是正则表达式匹配字符串结束位置。我开始始终没搞清楚这是什么意思,接下来我们一起看看几个例子就一目了然了。
先搞清楚^
先搞清楚:^匹配字符串开始位置(其实就是从字符串左边第一个字符开始匹配)
$str='https://www.wubin.work';
$pattern='/^www/';
$str=preg_replace($pattern, 'jianli', $str);
echo $str;
上面的输出是:https://www.wubin.work 没有任何变化,证明匹配失败。下面改造一下:
$str='https://www.wubin.work';
$pattern='/^http/';
$str=preg_replace($pattern, 'jianli', $str);
echo '替换结果是: '.$str;
替换结果是: jianlis://www.wubin.work 替换成功。
可以看到在已^开始的正则,只从左边第一个字符匹配,如果没匹配到,那整个匹配就是失败的。
$匹配字符串的结束位置
$str='https://www.wubin.work';
$pattern='/work$/';
$str=preg_replace($pattern, 'com', $str);
echo '替换结果是: '.$str;
替换结果是: https://www.wubin.com 匹配成功,再看一个例子
$str='https://www.wubin.work';
$pattern='/bin$/';
$str=preg_replace($pattern, 'mingjiang', $str);
echo '替换结果是: '.$str;
替换结果是: https://www.wubin.work 没有成功!
所以$是从字符串末尾开始匹配,如果匹配不到,那么就匹配失败!不是从字符串中的某一个字符串匹配!
同时使用^和$
$str='https://www.wubin.work';
$pattern='/^https:\/\/www.wubin.work$/';
$str=preg_replace($pattern, '替换成功!', $str);
echo '替换结果是: '.$str;
替换结果是: 替换成功!
替换字符串中的单词
$str='https://www.wubin.work';
$pattern='/\bwubin\b/';
$str=preg_replace($pattern, '替换成功!', $str);
echo '替换结果是: '.$str;
替换结果是: https://www.替换成功!.work
使用\b 单词 \b 分别加在单词的开头和末尾