黑马程序员技术交流社区

标题: 【上海校区】10个实用的PHP正则表达式 [打印本页]

作者: 梦缠绕的时候    时间: 2018-12-20 09:36
标题: 【上海校区】10个实用的PHP正则表达式
正则表达式是程序开发中一个重要的元素,它提供用来描述或匹配文本的字符串,如特定的字符、词或算式等
正则表达式是程序开发中一个重要的元素,它提供用来描述或匹配文本的字符串,如特定的字符、词或算式等。但在某些情况下,用正则表达式去验证一个字符串比较复杂和费时。本文为你介绍10种常见的实用PHP正则表达式的写法,希望对你的工作有所帮助。
1. 验证Email地址
这是一个用于验证电子邮件的正则表达式。但它并不是高效、完美的解决方案。在此不推荐使用。
[backcolor=rgb(27, 36, 38) !important][size=1em]
[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[color=rgb(185, 189, 182) !important][size=1em]7

[color=rgb(185, 189, 182) !important][size=1em]8

[size=1em][color=rgb(185, 189, 182) !important][size=1em]$email = "test@ansoncheung.tk";
[color=rgb(185, 189, 182) !important][size=1em]if
[color=rgb(185, 189, 182) !important][size=1em](preg_match('/^[^09][azAZ09_]+([.][azAZ09_]+)[@][azAZ09_]+([.][azAZ09_]+)[.][azAZ]{2,4}$/',$email))
[color=rgb(185, 189, 182) !important][size=1em]{
[color=rgb(185, 189, 182) !important][size=1em]echo "Your email is ok.";
[color=rgb(185, 189, 182) !important][size=1em]} else {
[color=rgb(185, 189, 182) !important][size=1em]echo "Wrong email address format";
[color=rgb(185, 189, 182) !important][size=1em]}



为了更加有效验证电子邮件地址,推荐使用filer_var。
[backcolor=rgb(27, 36, 38) !important][size=1em]
[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[size=1em][color=rgb(185, 189, 182) !important][size=1em]if (filter_var('test+email@ansoncheung', FILTER_VALIDATE_EMAIL)) {
[color=rgb(185, 189, 182) !important][size=1em]echo "Your email is ok.";
[color=rgb(185, 189, 182) !important][size=1em]} else {
[color=rgb(185, 189, 182) !important][size=1em]echo "Wrong email address format.";
[color=rgb(185, 189, 182) !important][size=1em]}



2. 验证用户名
这是一个用于验证用户名的实例,其中包括字母、数字(AZ,az,09)、下划线以及最低5个字符,最大20个字符。同时,也可以根据需要,对最小值和最大值做合理的修改。
[backcolor=rgb(27, 36, 38) !important][size=1em]
[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[size=1em][color=rgb(185, 189, 182) !important][size=1em]$username = "user_name12";
[color=rgb(185, 189, 182) !important][size=1em]if (preg_match('/^[az\d_]{5,20}$/i', $username)) {
[color=rgb(185, 189, 182) !important][size=1em]echo "Your username is ok.";
[color=rgb(185, 189, 182) !important][size=1em]} else {
[color=rgb(185, 189, 182) !important][size=1em]echo "Wrong username format.";
[color=rgb(185, 189, 182) !important][size=1em]}



3. 验证电话号码
这是一个验证美国电话号码的实例。
[backcolor=rgb(27, 36, 38) !important][size=1em]
[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[size=1em][color=rgb(185, 189, 182) !important][size=1em]$phone = "(021)4232323";
[color=rgb(185, 189, 182) !important][size=1em]if (preg_match('/\(?\d{3}\)?[\s.]?\d{3}[\s.]\d{4}/x', $phone)) {
[color=rgb(185, 189, 182) !important][size=1em]echo "Your phone number is ok.";
[color=rgb(185, 189, 182) !important][size=1em]} else {
[color=rgb(185, 189, 182) !important][size=1em]echo "Wrong phone number.";
[color=rgb(185, 189, 182) !important][size=1em]}



4. 验证IP地址
这是一个用来验证IPv4地址的实例。
[backcolor=rgb(27, 36, 38) !important][size=1em]
[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[color=rgb(185, 189, 182) !important][size=1em]7

[color=rgb(185, 189, 182) !important][size=1em]8

[size=1em][color=rgb(185, 189, 182) !important][size=1em]$IP = "198.168.1.78";
[color=rgb(185, 189, 182) !important][size=1em]if
[color=rgb(185, 189, 182) !important][size=1em](preg_match('/^(([19]?[09]|1[09]{2}|2[04][09]|25[05]).){3}([19]?[09]|1[09]{2}|2[04][09]|25[05])$/',$IP))
[color=rgb(185, 189, 182) !important][size=1em]{
[color=rgb(185, 189, 182) !important][size=1em]echo "Your IP address is ok.";
[color=rgb(185, 189, 182) !important][size=1em]} else {
[color=rgb(185, 189, 182) !important][size=1em]echo "Wrong IP address.";
[color=rgb(185, 189, 182) !important][size=1em]}



5. 验证邮政编码
这是一个用来验证邮政编码的实例。
[backcolor=rgb(27, 36, 38) !important][size=1em]
[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[size=1em][color=rgb(185, 189, 182) !important][size=1em]$zipcode = "123455434";
[color=rgb(185, 189, 182) !important][size=1em]if (preg_match("/^([09]{5})([09]{4})?$/i",$zipcode)) {
[color=rgb(185, 189, 182) !important][size=1em]echo "Your Zip code is ok.";
[color=rgb(185, 189, 182) !important][size=1em]} else {
[color=rgb(185, 189, 182) !important][size=1em]echo "Wrong Zip code.";
[color=rgb(185, 189, 182) !important][size=1em]}



6. 验证SSN(社会保险号)
这是一个验证美国SSN的实例。
[backcolor=rgb(27, 36, 38) !important][size=1em]
[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[size=1em][color=rgb(185, 189, 182) !important][size=1em]$ssn = "333232329";
[color=rgb(185, 189, 182) !important][size=1em]if (preg_match('/^[\d]{3}[\d]{2}[\d]{4}$/',$ssn)) {
[color=rgb(185, 189, 182) !important][size=1em]echo "Your SSN is ok.";
[color=rgb(185, 189, 182) !important][size=1em]} else {
[color=rgb(185, 189, 182) !important][size=1em]echo "Wrong SSN.";
[color=rgb(185, 189, 182) !important][size=1em]}



7. 验证信用卡号
[backcolor=rgb(27, 36, 38) !important][size=1em]
[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[color=rgb(185, 189, 182) !important][size=1em]7

[color=rgb(185, 189, 182) !important][size=1em]8

[size=1em][color=rgb(185, 189, 182) !important][size=1em]$cc = "378282246310005";
[color=rgb(185, 189, 182) !important][size=1em]if
[color=rgb(185, 189, 182) !important][size=1em](preg_match('/^(?:4[09]{12}(?:[09]{3})?|5[15][09]{14}|6011[09]{12}|3(?:0[05]|[68][09])[09]{11}|3[47][09]{13})$/',
[color=rgb(185, 189, 182) !important][size=1em]$cc)) {
[color=rgb(185, 189, 182) !important][size=1em]echo "Your credit card number is ok.";
[color=rgb(185, 189, 182) !important][size=1em]} else {
[color=rgb(185, 189, 182) !important][size=1em]echo "Wrong credit card number.";
[color=rgb(185, 189, 182) !important][size=1em]}



8. 验证域名
[backcolor=rgb(27, 36, 38) !important][size=1em]
[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[color=rgb(185, 189, 182) !important][size=1em]7

[color=rgb(185, 189, 182) !important][size=1em]8

[size=1em][color=rgb(185, 189, 182) !important][size=1em]$url = "[color=rgb(250, 4, 4) !important][size=1em]http://ansoncheung.tk/";
[color=rgb(185, 189, 182) !important][size=1em]if
[color=rgb(185, 189, 182) !important][size=1em](preg_match('/^(http|https|ftp):\/\/([AZ09][AZ09_](?:\.[AZ09][AZ09_])+):?(\d+)?\/?/i',
[color=rgb(185, 189, 182) !important][size=1em]$url)) {
[color=rgb(185, 189, 182) !important][size=1em]echo "Your url is ok.";
[color=rgb(185, 189, 182) !important][size=1em]} else {
[color=rgb(185, 189, 182) !important][size=1em]echo "Wrong url.";
[color=rgb(185, 189, 182) !important][size=1em]}



9. 从特定URL中提取域名
[backcolor=rgb(27, 36, 38) !important][size=1em]
[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[size=1em][color=rgb(185, 189, 182) !important][size=1em]4$url = "[color=rgb(250, 4, 4) !important][size=1em]http://ansoncheung.tk/articles";
[color=rgb(185, 189, 182) !important][size=1em]preg_match('@^(?:[color=rgb(250, 4, 4) !important][size=1em]http://)?([^/]+)@i', $url, $matches);
[color=rgb(185, 189, 182) !important][size=1em]$host = $matches[1];
[color=rgb(185, 189, 182) !important][size=1em]echo $host;



10. 将文中关键词高亮显示
[backcolor=rgb(27, 36, 38) !important][size=1em]
[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[color=rgb(185, 189, 182) !important][size=1em]7

[size=1em][color=rgb(185, 189, 182) !important][size=1em]$text = "Sample sentence from AnsonCheung.tk, regular expression has become
[color=rgb(185, 189, 182) !important][size=1em]popular in web programming. Now we learn regex. According to wikipedia, Regular
[color=rgb(185, 189, 182) !important][size=1em]expressions (abbreviated as regex or regexp, with plural forms regexes, regexps,
[color=rgb(185, 189, 182) !important][size=1em]or regexen) are written in a formal language that can be interpreted by a
[color=rgb(185, 189, 182) !important][size=1em]regular expression processor";
[color=rgb(185, 189, 182) !important][size=1em]$text = preg_replace("/\b(regex)\b/i", '\1', $text);
[color=rgb(185, 189, 182) !important][size=1em]echo $text;






作者: 梦缠绕的时候    时间: 2018-12-20 17:11

作者: 不二晨    时间: 2018-12-20 17:23





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2