正则表达式是一种字符串搜索和匹配的工具

  • $pattern = 正则表达式
  • $subject = 匹配的目标数据

常见正则表达式函数

preg_match()和preg_match_all()

preg_match ( string $pattern , string $subject [, array &$matches )
preg_match_all ( string $pattern , string $subject , array &$matches )
--> 搜索 subject 与 pattern 给定的正则表达式的一个匹配。

preg_match             只匹配一次
preg_match_all         是全文匹配,即所有跟表达式一致的都找出来。 

preg_replace()和preg_filter()

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject )
preg_filter ( mixed $pattern , mixed $replacement , mixed $subject )

preg_filter 只返回匹配结果,不匹配的直接忽略,而 preg_replace 将不匹配的结果也一起返回。

preg_grep()

preg_grep( mixed $pattern , array $input )
--> 可以看成是阉割版的preg_filter()
preg_grep()只匹配,不替换

preg_split()

preg_split( $pattern,$subject )
--> 通过一个正则表达式分隔字符串(升级版的exploded()。
    返回一个使用 pattern 边界分隔 subject 后得到的子串组成的数组。

preg_quote()

preg_quote ( string $str [, string $delimiter = NULL ] )
--> 转义正则表达式字符,向 $str 每个正则表达式语法中的字符前增加一个反斜线

preg_match –> 表单验证等

preg_replace –> 非法词语过滤等

正则表达式基本语法

界定符

表示一个正则表达式的开始和结束(/[0-9]/)

原子

  • 可见原子:Uincode编码表中用键盘输出后肉眼可见的字符

    • 标点 ; " _ ? .等等
    • 英文字符数字a-z,A-Z,0-9
    • 汉字等其他语言文字
    • 数理化公式符号
  • 不可见原子:Uincode编码表中用键盘输出后肉眼不可见的字符

    • 换行符\n
    • 回车\r
    • 制表符\t
    • 空格

文字匹配可用转为uincode后搜索,不易出错

元字符

  • 原子的筛选方式
    • | 匹配两个或者多个分支选择(或,只要一个满足就匹配)
    • [] 匹配方括号里的任意一个原子(可在每个区间:[a-z],[A-Z],[0-9])
    • [^] 匹配除方括号中的原子之外的任意字符
  • 原子的集合
    • . 匹配除了换行符之外的任意字符
    • \d 匹配任意一个十进制的数字,即[0-9]
    • \D 匹配任意一个非十进制的数字,即[^0-9]
    • \s 匹配一个不可见原子
    • \S 匹配一个可见原子
    • \w 匹配任意一个数字、字母或下行线
    • \W 匹配任意一个非数字、字母或下行线

量词

  • {n} 表示其前面的原子恰好出现n次
  • {n,} 表示其前面的原子最少出现n次
  • {n,m} 表示其前面的原子最少出现n次,最多出现m次
  • * 匹配0次,1次或者多次其前面出现的原子,即{0,}
  • + 匹配1次或者多次其前面出现的原子,即{1,}
  • ? 匹配0次或1次其前面出现的原子,即{0,1}

边界控制与模式单元

  • ^ 匹配字符串_开始_的位置
  • $ 匹配字符串_结尾_的位置

模式单元

懒惰匹配和贪婪匹配

修正模式

  • 贪婪匹配:匹配结果存在歧义时取其长(默认)
  • 贪婪模式:匹配结果存在歧义取其短[只需在正则表达式的后面'/'加上'U',例如'/[0-9]/U';]

常见修正模式

  • U 懒惰匹配
  • i 忽略英文字母的大小写
  • x 忽略正则表达式的空白符
  • s 让元字符'.' 匹配包括换行符在内的所有字符

regexpal工具

正则表达式的工具:用于检测正则表达式是否正确

说点什么
评论之后转圈圈也不用管,要批准之后才能显示,谢谢
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...