正则表达式基础篇

正则表达式就是用某种模式去匹配一类字符串的一种公式。

PHP中的正则表达式

PHP中有两套正则函数preg和ereg(5.3以后不再推荐使用)

正则表达式的组成

  • 分隔符:除了字幕、数字、反斜线、空白字符之外的任何字符
  • 表达式:由一些特殊字符和非特殊字符串组成
  • 修饰符:用于开启或者关闭某种功能

正则表达式中的元字符

  • 常用元字符
元字符 描述
. 匹配除换行符以外的任意字符
\w 匹配字母、数字、下划线、汉字
\s 匹配任意空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
- 表示范围
[] 匹配括号中任意一个字符
*、+、? 量词
  • 例子
正则表达式 匹配内容
\ba\w*\b 匹配以字母a开头的单词
\d+ 匹配1个或更多连续的数字
\b\w{6}\b 匹配刚好6个字符的单词

注意:单词指的是字母或者数字

  • 量词
限定符代码 描述
* 重复0次或更多次
+ 重复一次或更多次
? 重复0次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
  • 转义字符:\
  • 反义
元字符 描述
\W 匹配不是字母、数字、下划线、汉字
\S 匹配非空白符
\D 匹配非数字
\B 匹配不是单词的开始或结束的位置
[^x] 匹配除了x以外的字符
[^aeiou] 匹配除了aeiou之外的字符

注意:反义不可多用,因其扩大了匹配范围,可能匹配到不是原来要的

  • 分支:|
    例子:
    (c|h|f|to)at : 匹配cat,hat,fat,toat
    [ch]at == (c|h)at

注意: 括号可有可无,但是正则匹配的规则是:从左到右测试每个条件,如果满足了某个分支,就不会再考虑其他分支

你可能感兴趣的:(正则表达式基础篇)