正则表达式(即:匹配模式Pattern)
2014-03-06 16:30
169 查看
通过学习《正则表达式-Regular-Expression-Tutorial.pdf》这份文档,对正则表达式有了很好的了解,原因只有1个--这份文档写得太好了。
它的下载地址是:http://www.cnblogs.com/JimmyZhang/archive/2007/10/24/936151.html
在这份文档中,提到了
通读了1遍《正则表达式-Regular-Expression-Tutorial.pdf》,先把记在本上的东西挪到这里,待继续学习(《LINUX鸟哥私房菜》第12章-正则表达式,《HEAD FIRST PHP & MySQL》第10章-正则表达式 替换规则)后再完善这篇BLOG。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
“MySQL”的正式发音是“My Ess Que Ell”(而不是“my sequel”),但我们并不介意你的发音方式是“my sequel”或其他当地方式。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
正则表达式的概念:
标准版:PHP提供了一种强大的方法创建和匹配文本中的模式。可以创建一些规则来查找文本串中的模式。这些规则就称为正则表达式,或简写为regex。
简易版:正则表达式是一些规则,用于匹配一个或多个串中的模式。
关于元字符
是在正则表达式中具有特殊含义的字符,利用元字符可以在正则表达式中描述文本模式。
正则表达式常用到的符号的说明
与正则表达式相关的PHP函数
preg_match()
这个PHP函数会检查一个文本串,查看它与一个正则表达式是否匹配。如果匹配,这个函数返回true,否则返回false。
上面的这个函数理解起来很简单,也是最基本的验证,即:验证用户输入的字符串是不是符合正则表达式。
preg_replace()
使用这个PHP函数可以根据一个正则表达式替换一个串中的子串。 这个函数完成一个查找一个替换操作,使用一个正则表达式进行查找,并替换为你提供的串。
上面的这个函数的意思是,用户可能输入的电话号码是:(010)62222222、010-62222222、010 6222 2222,那么使用这个函数可以把每种用户输入的形式转变为标准化的格式存放到数据库里。
checkdnserr()
这个PHP函数检查一个域名,来看它是否确实存在。验证E-mail地址时这很方便,因为你希望确保E-mail的域部分是真实的。
举个例子,如果用户输入的E-mail地址符合正则表达式,但是@后面的域名并没有被注册过,那这不也还是白搭么,谁联系的上你。
[概念补充-DNS]
域名系统(Domain Name System,简称DNS)是一个分布式数据服务,提供世界范围内域及其IP地址的一个目录,使域名的使用成为可能。如果没有DNS,我们就必须键入211.147.4.31而不是douban.com
它的下载地址是:http://www.cnblogs.com/JimmyZhang/archive/2007/10/24/936151.html
在这份文档中,提到了
练习正则表达式的工具code-architects-regex-tester,工具的使用可以参考链接http://hi.baidu.com/kedulinjl/item/35d6df11f93e76e65f53b156
通读了1遍《正则表达式-Regular-Expression-Tutorial.pdf》,先把记在本上的东西挪到这里,待继续学习(《LINUX鸟哥私房菜》第12章-正则表达式,《HEAD FIRST PHP & MySQL》第10章-正则表达式 替换规则)后再完善这篇BLOG。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
“MySQL”的正式发音是“My Ess Que Ell”(而不是“my sequel”),但我们并不介意你的发音方式是“my sequel”或其他当地方式。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
正则表达式的概念:
标准版:PHP提供了一种强大的方法创建和匹配文本中的模式。可以创建一些规则来查找文本串中的模式。这些规则就称为正则表达式,或简写为regex。
简易版:正则表达式是一些规则,用于匹配一个或多个串中的模式。
关于元字符
是在正则表达式中具有特殊含义的字符,利用元字符可以在正则表达式中描述文本模式。
元字符 | 作为元字符的时候 | 作为该字符本身的时候 | 备注 |
“.” | “.”是一个元字符,匹配除换行符意外的任意单个字符 | 当匹配“.”本身,需转义“\.” | 能匹配字母或数字(类似于\w), 能匹配空格或制表符(类似于\s) |
\w | 查找任何字母数字 | “w”只是个普通字符 | 包括a-z和A-Z 包括0-9(类似于\d) |
\s | 查找空格字符、制表符、换行、回车符 | “s”只是个普通字符 | 匹配1行中的2个空格字符的写法: \s\s或者\s{2} |
\d | 查找所有单个数字 | “d”只是个普通字符 | 匹配两位数的写法: \d\d或者\d{2} |
^ | 查找一个串的开始位置 | ||
$ | 查找串尾 | ||
“\” | “\”是一个元字符,转义字符 | 当匹配“\”本身,需转义“\\” | |
“[” “]” | “[” “]”也是元字符 | 当匹配“[” “]”,需转义“\[” “\]” | |
\r | “\r”表示回车 | “r”只是个普通字符 | |
\n | “\n”表示换行 | “n”只是个普通字符 |
符号 | 简要说明 | 其它说明 |
+ | 1个或多个 | \d{1,} |
* | 0个或多个 | \d{0,} |
? | 0个或1个 | \d{0,1} |
{min,max} | 指示了前面的字符或元字符重复次数的范围 | {2,4}要求应当在一行中出现2、3或4次 |
\w | [a-zA-Z0-9] | |
\W | [^a-zA-Z0-9] | |
\s | 查找空格字符 | 空格字符、制表符、换行、回车符 |
\S | 完全,一字不漏 | |
\d | 所有单个数字 | [0-9] |
\D | 所有非数字 | [^0-9] |
\b | 字符首 | 位于表达式首的“\b”理解成1个非获取匹配的一个特例 |
\B | 字符尾 | |
^ | 文本首 | |
$ | 文本尾 | |
[a-c] | 字符类:匹配正则表达式中单个字符的一组规则 | [a-c]会匹配a、b、c |
[^a-c] | 这个^表示“匹配除…以外的所有字符” | 会匹配除a、b、c以外的所有字符 |
preg_match()
这个PHP函数会检查一个文本串,查看它与一个正则表达式是否匹配。如果匹配,这个函数返回true,否则返回false。
上面的这个函数理解起来很简单,也是最基本的验证,即:验证用户输入的字符串是不是符合正则表达式。
preg_replace()
使用这个PHP函数可以根据一个正则表达式替换一个串中的子串。 这个函数完成一个查找一个替换操作,使用一个正则表达式进行查找,并替换为你提供的串。
上面的这个函数的意思是,用户可能输入的电话号码是:(010)62222222、010-62222222、010 6222 2222,那么使用这个函数可以把每种用户输入的形式转变为标准化的格式存放到数据库里。
checkdnserr()
这个PHP函数检查一个域名,来看它是否确实存在。验证E-mail地址时这很方便,因为你希望确保E-mail的域部分是真实的。
举个例子,如果用户输入的E-mail地址符合正则表达式,但是@后面的域名并没有被注册过,那这不也还是白搭么,谁联系的上你。
[概念补充-DNS]
域名系统(Domain Name System,简称DNS)是一个分布式数据服务,提供世界范围内域及其IP地址的一个目录,使域名的使用成为可能。如果没有DNS,我们就必须键入211.147.4.31而不是douban.com
相关文章推荐
- 正则表达式Pattern(模式类)Matcher(匹配器类)
- MySQL 字符串模式匹配 扩展正则表达式模式匹配
- 正则表达式使模式匹配和数据提取变得更容易(David Banister)
- 290. Word Pattern-leetCode(字符模式匹配)(简单,使用两组Map进行查找判断)
- 正则表达式的模式匹配
- 正则表达式(grep)元字符及模式匹配的介绍及sed高级应用选项
- [LeetCode]48. Word Pattern匹配模式
- Java - 正则表达式的运用(Pattern模式和Matcher匹配)—— 匹配中文,英文字母和数字及_长度详解——收集资源blog
- 正则表达式(五)------ 匹配模式
- 正则表达式与模式匹配
- 正则表达式中最短匹配模式的用法浅析
- 正则表达式中字符串模式匹配方法exec和match的区别
- Scala基础教程(八):模式匹配、正则表达式
- Java - 正则表达式的运用(Pattern模式和Matcher匹配)
- 正则表达式 —— 一种模式描述语言(贪婪匹配与惰性匹配)
- 模式匹配与正则表达式
- perl模式匹配中用含特殊字符的变量?(using a variable as a pattern which contains special characters?)
- 正则表达式和模式匹配简介
- Java - 正则表达式的运用(Pattern模式和Matcher匹配)
- Java - 正则表达式的运用(Pattern模式和Matcher匹配)