正则表达式 简介

初次接触正则表达式的读者除了感觉它有些繁琐外,还会有一种深不可测的感觉。

其实正则表达式就是描述字符排列模式的一种自定义的语法规则,在PHP给我们提供的系统函数中,使用这种模式对字符串进行匹配、查找、替换及分割等操作。它的应用非常广泛。

例如:

常见的使用正则表达式去验证用户在表单中提交的用户名、密码、E-mail地址、身份证号码及电话号码等格式是否合法;

在用户发布文章时,将输入有URL的地方全部加上对应的连接;

按所有标点符号计算文章中一共有多少个句子;

抓取网页中某种格式的数据等。

正则表达式并不是PHP、Java、C等语言的产物,在很多领域都会见到它的应用,除了在perl、C#及Java语言中应用外,在我们的B/S架构软件开发中,Linux操作系统、前台JavaScript脚本、后台脚本PHP及MySQL数据库中都可以用到正则表达式。

正则表达式 实例

正则表达式也称为模式表达式,自身具有一套非常完整的、可以编写模式的语法体系,提供了一种灵活且直观的字符串处理方法。正则表达式通过构建具有特定规则的模式,与输入的字符串信息比较在特定的函数中使用从而实现字符串的匹配、查找、替换及分割等操作。

下面演示3种较为简单的正则编写。

1.匹配所有数字。

/[0-9]+/ “[]” 表示区间范围,并且包含,也就是0 ~ 9  的数字并且含 0 9 “+”  则表示多个,这就是匹配所有数字,并且长度为1~N

其实上面有简单的写法。后面会细说。

2.匹配所有字母。

字母我们有26 个小写,26 个大写字母。26 个小写为/[a-z]+/  ,从a~z 。同理匹配26 个字母大写为/[A-Z]+/  ,那么同理匹配26 个大小写字母都匹配那就是/[a-zA-Z]+/ 

3.匹配HTML标签。

我们来一个复杂一点的,就是匹配HTML标签,/<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)/ 看上去是不是很复杂?其实要是你把它拆解开,一个一个理解,然后串联起来,其实很Easy。这里先介绍到这里,下面会详细说明。