PHP学习正则表达式 课件第1/2页

5年以前  |  阅读数:517 次  |  编程语言:PHP 

正则表达式

在PHP中有两套正则表达式函数库,两者功能相似,只是执行效率略有差异:
一套是由PCRE(Perl Compatible Regular Expression)库提供的。使用"preg"为前缀命名的函数;
一套由POSIX(Portable Operating System Interface of Unix )扩展提供的(PHP默认)。使用以"ereg
"为前缀命名的函数;
PHP中,正则表达式有三个作用:
匹配,也常常用于从字符串中析取信息。
用新文本代替匹配文本。
将一个字符串拆分为一组更小的信息块。

一个正则表达式中至少包含一个原子。
原子(普通字符,如英文字符)
元字符(有特殊功用的字符)
模式修正字符(对正则表达式语义的修正)

  原子(Atom)   

单个字符、数字,如a~z,A~Z,0~9。
模式单元,如(ABC)可以理解为由多个原子组成的大的原子。
原子表,如 [ABC]。
重新使用的模式单元,如:\\1
普通转义字符,如:\d, \D, \w
转义元字符,如:\*,\.

  POSIX正则表达式   

POSIX正则表达式全称为Portable Operating System Interface of Unix,意为UNIX可移植操作系实现接口。

构造POSIX正则表达式的方法和创建数学表达式的方法一样,也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。

  元字符(Meta-character)   

元字符是用于构造规则表达式的具有特殊含义的字符。如果要在正则表达式中包含元字符本身,必须在其前加上"\"进行转义
元字符 说明

  •    0次、1次或多次匹配其前的原子   
  •    1次或多次匹配其前的原子   

    ? 0次或1次匹配其前的原子
    | 匹配两个或多个选择 列如 [1-9]|[a-b]|[A-Z] 与其中任何匹配为ture
    ^ 匹配字符串串首的原子 例如 abscd===^afdgfgf 相匹配
    $ 匹配字符串串尾的原子 例如 dasdsv===v$
    [] 匹配方括号中的任一原子 例如 s===[dsadas]
    [^] 匹配除方括号中的原子外的任何字符 例如 aaaaa===[dddd]
    {m} 表示其前原子恰好出现m次
    {m,n} 表示其前原子至少出现m次,至少出现n次(n>m)
    {m,} 表示其前原子出现不少于m次
    () 整体表示一个原子
    . 匹配除换行之外的任何一个字符

^ $ 这两个原字符在一起称为定界
abd===^abc$ 只有这样才匹配

模式匹配的顺序    

顺序 元字符 说明
1 () 模式单元
2 ?* +{} 重复匹配
3 ^$ 边界限制
4 | 模式选择

POSIX正则表达式函数   

ereg()和eregi()
ereg_replace()和eregi_replace()
split()和spliti()

ereg()和eregi()ereg()字符串匹配函数,eregi()是ereg()函数的忽略大小的版本
语法格式:if (!ereg('^[^./][^/]*$', $userfile))//不匹配格式输出die
{
die('这是一个非法的文件名!');
}

ereg_replace()和eregi_replace(忽略大小写)替换
string eregi_replace ("正则表达式","目标替换字符","替换目标")
语法格式:$string = "This is a test";
echo str_replace(" is", " was", $string);
echo ereg_replace("( )is", "\\1was", $string);\\1 为继承第一个整体
echo ereg_replace("(( )is)", "\\2was", $string);\\2继承第二个整体

split()和spliti(忽略大小写)用正则表达式将字符串分割到数组中
list:给数组中的值赋予一些变量
语法格式:$date = "04/30/1973";
list($month, $day, $year) = split ('[/.-]', $date);//列出三个变数对应格式//以什么形式拆分 拆分谁
echo "Month: $month; Day: $day; Year: $year
\n";
输出结果Month: 04; Day: 30; Year: 1973

当前1/2页 12下一页阅读全文

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例