八: PHP正则表达式
正则表达式作用:分割,查找,匹配,替换字符串
分隔符:正斜线(/)、hash符号(#)以及取反符号(~)
通用原子:
\d、0-9
\D、0-9 取反
\w、数字字母下划线
\W、数字字母下划线取反
\s 、空格符
\S 空格符 取反
正则表达式:后向引用
贪婪模式
可用?或者U取消贪婪模式,但是不能同时使用,否则会出现负负得正的效果
php用正则表达式判断手机号码的写法:
$g = "/^1[34578]\d{9}$/";
// "^"符号表示必须是1开头; "[ ]"的意思是第二个数字必须是中括号中一个数字; 而 \d 则表示0-9任意数字,后跟{9}表示长度是9个数字; 后面的$表示结尾; 开始和结尾的 / 是正则表达式必须放在这个中间, 有的后面可能还跟模式.
从文章中匹配出所有的手机号就可以这样写了:
$str = '手机是13712345678';
preg_match_all("/^1[34578]\d{9}$/", $str, $mobiles);
//var_dump($mobiles);
文章参考:PHP手机号码正则表达式
参考网址:https://www.cnblogs.com/blogforly/p/5644049.html
preg_replace
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}2,$2';
echo preg_replace($pattern, $replacement, $string);
//$0 April 15, 2003
//$1 April
//$2 15,
//$3 2003
//${1}2,$2 April2,15
//请写出139开头的11位手机号码的正则表达式
$str = '13915725539';
$pattern = '/^139\d{8}$/';
preg_match($pattern,$str,$matches);
var_dump($matches);
请匹配img标签中的所有的src的值