通过学习《正则表达式-Regular-Expression-Tutorial.pdf》这份文档,对正则表达式有了很好的了解,原因只有1个--这份文档写得太好了。

它的下载地址是: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以外的所有字符

与正则表达式相关的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

正则表达式(即:匹配模式Pattern)的更多相关文章

  1. java 数据类型String 【正则表达式】匹配工具 Pattern和Matcher

    Pattern和Matcher的介绍: Pattern对象是正则表达式编译后在内存中的表示形式,因此正则表达式宇符串必须先被编译为Pattern对象,然后再用该Pattern对象创建对应的Matche ...

  2. smix到底是个啥?Perl的正则表达式匹配模式

    最近在研究一个perl项目,临时学习了一下perl语法,强行看项目源码.因为总是见到各种正则表达式后面接smxi之类,虽然知道是匹配模式,但脑子里毫无概念.所以特地去学习了一下. 以上为背景. Per ...

  3. RegExp正则匹配模式汇总

    正则表达式提供另一种强大的文本搜索和处理方式,对于正则表达式,不同语言有着不同的实现,JavaScript采用的Perl5的语法.对于极少数匹配模式是简单的全字符文本的情况,我们往往会采用indexO ...

  4. RegExp正则表达式的匹配

    JavaScript RegExp 对象 RegExp 对象 正则表达式是描述字符模式的对象. 正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具. 语法 var patt=n ...

  5. SQL中常用模糊查询的四种匹配模式&&正则表达式

    执行数据库查询时,有完整查询和模糊查询之分.一般模糊语句如下:SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式:1.%:表示任意0个或多个字 ...

  6. Javascript中正则表达式的全局匹配模式

    先看一道JavaScript题目,据说是国内某知名互联网企业的JavaScript笔试题,如果对正则的全局匹配模式不了解的话可能会对下面的输出结果感到疑惑. var str = "123#a ...

  7. 第11.11节 Python正则表达式的指定重复次数匹配模式及元字符”{}”功能介绍

    在<第11.8节 Pytho正则表达式的重复匹配模式及元字符"?". "". "+"功能介绍>和<第11.10节 Pyth ...

  8. PHP 正则表达式---匹配模式

    1.PHP 正则表达式 正则表达式贪婪匹配,非贪婪匹配. 默认是贪婪匹配, 例如 ①.贪婪匹配, $str = ' 香肠 月饼 '; preg_match('/ (.)</td>/',$s ...

  9. 第11.6节 Python正则表达式的字符串开头匹配模式及元字符“^”(插入符、脱字符)功能介绍

    符号"^"为插入符,也称为脱字符,在Python中脱字符表示匹配字符串的开头,即字符串的开头满足匹配模式的要求.这个功能有点类似搜索函数match,只是这是通过搜索模式来指定,而m ...

随机推荐

  1. Texlive + TexStudio + Language Tool Win7配置

    Texlive的配置很简单,安装的时候跟着向导一步一步安装就可以了. TexStudio也是同样的安装过程,没什么技巧.这里提一下界面颜色的配置.习惯了暗底白字,所以就google了一下相关的配置,大 ...

  2. pdf文件之itextpdf插入html内容以及中文解决方案

    简述 目前网上已经有很多种html文件直接转pdf的技术帖子,但是很少有直接将部分html作为段落插入到pdf中,而且也没有一个可以很好的解决中文显示的问题. 因此今天上午围绕这个问题进行了研究,把解 ...

  3. Python3.5学习笔记-列表、元组、字典

    Python中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建.在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型 ...

  4. Tomcat学习笔记(一)一个简单的Web服务器

    内容为<深入剖析Tomcat>第一章重点,以及自己的总结,如有描述不清的,可查看原书. 一.HTTP协议: 1.定义:用于服务器与客户端的通讯的协议,允许web服务器和浏览器通过互联网进行 ...

  5. 推荐系统那点事 —— 基于Spark MLlib的特征选择

    在机器学习中,一般都会按照下面几个步骤:特征提取.数据预处理.特征选择.模型训练.检验优化.那么特征的选择就很关键了,一般模型最后效果的好坏往往都是跟特征的选择有关系的,因为模型本身的参数并没有太多优 ...

  6. 野村证券伦敦分部面试 - Java岗位

    第一轮 1. 笔试 30 mins 一共六道大题,前两题有4-5个小题. 第一道大题主要是考察Java Collections: a. LinkedList和ArrayList的区别 b. Set和L ...

  7. Html的基本元素(Element)

    本人写这篇文章是我在IT修真园里学习了一段时间,反过来复习时整理的.虽然只是些基础知识内容,希望能帮到大家. 首先我们要了解所谓的html它的定义是什么? [html:超文本标记语言,文本:txt格式 ...

  8. python全栈阶段测试(一)

    1.执行Python脚本的两种方式 如果想要永久保存代码,就要用文件的方式 如果想要调试代码,就要用交互式的方式 2.Pyhton单行注释和多行注释分别用什么? 单行注释:# 多行注释: '' &qu ...

  9. nyoj_323:Drainage Ditches(网络流入门)

    题目链接 网络流入门@_@,此处本人用的刘汝佳的Dinic模板 #include<bits/stdc++.h> using namespace std; const int INF = 0 ...

  10. 【转载】Android 开发 命名规范

    原文地址:http://www.cnblogs.com/ycxyyzw/p/4103284.html 标识符命名法标识符命名法最要有四种: 1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外, ...