正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。
相关推荐:1. 正则表达式语法教程(含在线测试工具)2. PHP正则表达式极速入门视频教程
元字符使用正则表达式具有处理能力。元字符既可以是放在[ ] 中的任意单个字符(如 [a]表示匹配单个小写字符 a),也可以是字符序列(如 [a-d] 表示匹配 a 、b、 c、 d 之间的任意一个字符,而 w 表示任意英文字母和数字及下划线),常见的元字符如下:
字符 | 描述 | 特别说明 |
---|---|---|
. | 匹配除换行符( )以外的任意字符 | ~ |
[abcde] | 匹配 a b c d e 之中的任意一个字符 | 所有字符是 或 的关系 |
[a-h] | 匹配 a到h之间的任意一个字符 | ~ |
[^fgh] | 不与 fgh之中的任意一个字符匹配 | 在 中括号[ ] 的第一个字符前加上 ^ 表示 取反 不匹配中括号里面出现的任意字符 |
w | 匹配大小写英文字符及数字 0 到 9 之间的任意一个及下划线,相当于[a-zA-Z0-9_] | ~ |
W | 与 w 相反,相当于 [^a-zA-Z0-9_] | ~ |
s | 匹配任意的空白符,相当于 [ ] | ~ |
S | 与 s相反,相当于 [^s] | ~ |
d | 匹配任何 0 到 9 之间的单个数字,相当于 [0-9] | ~ |
D | 与 d 相反,相当于[^0-9] | ~ |
[u4e00-u9fa5] | 匹配任意单个汉字(中文)(这里用的是 Unicode 编码表示的汉字) | ~ |
匹配单词的开始或结束 | ~ | |
^ | 匹配字符串的开始 | 放在中括号的第一个字符前 则变为 取反的意思 |
$ | 匹配字符串的结束 | ~ |
作用:限定这个符号前面 一个 单元 多出现的次数
单元:
上面的元字符都是针对单个字符匹配的,要想同时匹配多个字符的话,还需要借助限定符,下面是一些常见的限定符(下表中 n 和 m 都是表示 整数。)
字符 | 描述 | 特别说明 |
---|---|---|
* | 匹配 0 到 多 个元字符,相当于 {0,} | ~ |
? | 匹配 0 到 1 个元字符, 相当于 {0,1} | ~ |
+ | 匹配至少 1 个元字符,相当于 {1,} | ~ |
{n} | 匹配 n 个元字符 | ~ |
{n,} | 匹配至少 n 个元字符 | ~ |
{n,m} | 匹配 n 到 m 个元字符 | ~ |
匹配单词边界 | ~ | |
^ | 字符串必须以指定的字符开始 | ~ |
$ | 字符串必须以指定的字符结束 | ~ |
多选结构其实就是元字符 | (或)的使用。
界定范围:开头、结尾、小括号
正则 | 含义 |
---|---|
Windows98|Windows2000|WindowsXP | 匹配Windows98或者Windows2000或者WindowsXP |
^Windows98|Windows2000|WindowsXP$ | 以Windows98开头或者包含Windows2000或者以WindowsXP结尾 注意^和$都包含在|的范围内,因为|的界限只有:开头、结尾、小括号 |
Windows(98|2000|XP) | Windows然后98 或者2000或者XP |
总结:多选结构可以包括很多字符,但不能超越 括号 的界限。
示例:
直白解释:
正则表达式中,前面用小括号进行划分(分组),后面把小括号匹配到的内容引用到后面来,分别用、等 来表示。(第一个小括号极...)。如果存在 小括号嵌套小括号的情况 (w+(.?)) 记住:这个时候要以 ( 为标志 从左往右 数小括号就可以了。
总结:
贪婪与懒惰模式之间的区别就在于:懒惰模式 在量词 * 的后面多了一个 问号 ?。
在使用正则表达式时,需要注意匹配的顺序。通常相同优先级 从左到右 进行计算,不同优先级的运算 先高后低。各种操作符的匹配顺序优先级 从高到低 如下表所示。
顺序 | 元字符 | 描述 |
---|---|---|
1 | 转义字符 | |
2 | ()、(?:)、(?=)、[] | 模式单元和原子表 |
3 | *、+、?、{n}、{n,}、{n,m} | 重复匹配 |
4 | ^、$、、B、A、Z | 边界限制 |
5 | | | 模式选择 |
1问:要匹配字符串 333333$3333 中的 $ 正则应该怎么写?
2问:如果在 PHP 中 preg_match 函数分别用单引号和双引号的表达式来匹配上面的 $,怎么写?
答案:
再答:
双引号除了转义 以外,还需要多一个 用来转义 $ 所以它 需要 7 个。
相关教程推荐:PHP视频教程
以上就是详解正则表达式的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号