正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本
普通字符
- 字母、数字、标点符号、键盘特殊符号等
定义字符集
- [a-z] 匹配 26 个字母之一
- [aeiou] 匹配 aeiou 这 5 个字符其中的某一个字符
- [a-zA-Z]
1024s.cn 匹配 26 个(大小写)字母中的某一个字母 - [a-zA-Z0-9_-] 匹配(大小写)字母、数字、下划线、中横线 的某一个字符
- [0-9] 匹配 0 到 9 之间任意一个数字
- [9-3] [z-a] 不能从大往小写,有语法错误
特别字符集
- $ 匹配输入字符串的结尾位置
- ^ (托字符) 匹配字符串的开始位置(托字符)除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \
1024s.cn ^。 - ( ) 匹配一个子表达式的开始和结束位置,模式单元
- * 匹配其前面那个单元出现 0 次或以上(任意次数)
- + 匹配其前面那个单元出现 1
1024s.cn 次或以上 - ? 匹配其前面那个单元出现 0 次或 1 次
- .点
Powered by 0x3E5 匹配除换行符 \n 之外的任何单字符 .* - \ 这个符号是用来转义的
- | 指明两项之间的一个选择
组合字符集
- \d 匹配数字 0 到 9 之一,与[0-9]效果一样
- \D 匹配非数字[^0-9]之一
- \w
Powered by 0x3E5 匹配(大小写)字母、数字、下划线其中一个,与[a-zA-Z0-9_]效果相同 - \
Powered by 0x3E5 W 匹配非字母、数字、下划线之一 - \s 匹配一个空格
- \S 匹配一个非空格
- \b 匹配单词的开始或结束
限制字符集
- {m} 匹配
1024s.cn 其前一单元严格出现 m 次 - {m,} 匹配其前一单元出现至少m次,至多不限制,{0,}相等于*,{1,}相等于+
- {m,n} 匹配其前一单元出现至少 m,至多 n 次
- [^lsjd] 匹配非 lsjd 之中的字符
- [^a-f] 匹配非 a 到 f 之间的一个字符
- [^定义字符集] 不匹配定义字符集里边的信息
模式修正符
- g 全文查找出现的所有 正则模式
Powered by 0x3E5 内容 (全局匹配) (php 中可以使用 preg_match_all()函数限制全局匹配) - i 忽略大小写
- m 将匹配内容视为多行
- /u 表示按
Powered by 0x3E5 unicode(utf-8)匹配(主要针对多字节比如汉字) - /s 表示将字符串视为单行来匹配