PHP 正则表达式是一种强大的工具,它可以用来匹配、查找和替换字符串。在PHP中,可以使用preg函数库来进行正则匹配。下面是PHP正则表达式的使用基础入门攻略。
正则表达式语法
正则表达式语法由一系列字符和元字符(符号)组成。其中常用的元字符包括:
.
:匹配任意字符^
:匹配行首(以此符号后面的字符为行首)$
:匹配行尾(以此符号前面的字符为行尾)*
:匹配任意次数的前面的字符+
:匹配至少一次的前面的字符?
:匹配零次或一次前面的字符{n}
:匹配前面的字符n次{n,}
:匹配前面的字符至少n次{n,m}
:匹配前面的字符至少n次,但不超过m次[]
:匹配方括号中的任意一个字符|
:或的意思,匹配符号左边或右边的内容()
:匹配括号中的内容,并记住所匹配的结果\d
:匹配任意数字,相当于[0-9]\w
:匹配任意字母、数字、下划线,相当于[a-zA-Z0-9_]\s
:匹配任意空白字符,包括空格、制表符、换行符等等\D
:匹配任意非数字字符,相当于[^0-9]\W
:匹配任意非单词字符,相当于[^a-zA-Z0-9_]\S
:匹配任意非空白字符
preg函数库
在PHP中,可以使用preg函数库来进行正则表达式的匹配。使用preg函数需要掌握以下几个函数:
preg_match($pattern, $subject)
:尝试从subject中匹配pattern指定的正则表达式。如果匹配成功,返回1;否则返回0。preg_match_all($pattern, $subject, $matches)
:尝试从subject中匹配所有符合pattern指定的正则表达式。如果匹配成功,返回匹配到的次数,并将结果存入matches数组中。preg_replace($pattern, $replacement, $subject)
:在subject中查找pattern,并用replacement替换匹配到的内容。
示例一
下面是一个简单的示例,用正则表达式来验证邮箱地址的格式是否正确:
$email = "user@example.com";
if (preg_match("/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/", $email)) {
echo "邮箱格式正确";
} else {
echo "邮箱格式不正确";
}
运行结果:
邮箱格式正确
上面的正则表达式解释如下:
/
:正则表达式必须以斜杠开始和结束;^
:匹配行首;[a-zA-Z0-9._%+-]+
:匹配任意字母、数字、下划线、百分号、加号、减号、点号的至少一次出现(邮箱用户名);@
:匹配@字符;[a-zA-Z0-9.-]+\.
:匹配任意数字、字母、点号、短横线的至少一次出现,再加上一个点号(邮箱域名);[a-zA-Z]{2,}
:匹配至少两个字母的邮箱后缀。
示例二
下面是一个示例,使用正则表达式来替换HTML中的图片链接:
$html = '<img src="example.jpg">
<img src="another_example.png">';
$new_html = preg_replace("/<img src=\"(.*?)\">/","<img src=\"http://example.com/$1\">",$html);
echo $new_html;
运行结果:
<img src="http://example.com/example.jpg">
<img src="http://example.com/another_example.png">
上面的正则表达式解释如下:
/
:正则表达式必须以斜杠开始和结束;<img src=\"
:匹配<img src="这个字符串;(.*?)
:匹配任意字符,包括空白字符,至少出现一次,尽可能少地匹配;">
:匹配">这个字符串。
使用$1
表示替代字符串中第一个子组(即匹配到的图片链接)。这里的$1
表示在这个位置插入匹配到的内容。
以上就是正则表达式的基础入门攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP 正则的使用基础入门 - Python技术站