初步学习正则表达式
程序员文章站
2022-05-11 10:28:47
目录 分隔符 字符类和类型 重复 子表达式 子表达式计数 定位到字符串的开始或末尾 分支 匹配特殊字符 特殊字符含义 分隔符 正则表达式必须包含在一对分隔符中。可以选择任何非字母,数字,"\" 或空格的字符作为分隔符。字符串的开始和结束必须有匹配的分隔符。 最常用的分隔符是"/"。 如匹配"shop ......
目录
分隔符
- 正则表达式必须包含在一对分隔符中。可以选择任何非字母,数字,"\" 或空格的字符作为分隔符。字符串的开始和结束必须有匹配的分隔符。
- 最常用的分隔符是"/"。 如匹配"shop": /shop/
- 如果要在正则表达式中匹配字符"/",需要使用"\"来转义"/"。如匹配"http://": /http:\/\//
字符类和类型
- 可以用字符"."作为匹配除换行符(\n)之外任何字符的通配符。如:/.at/ 可以匹配“cat”,“sat”,“mat”等,通常这种通配符的匹配适用于操作系统的文件名匹配。
- /[a-z]at/ 表示第一个字符是a到z之间的字符,后面匹配at;任何[ ]中的内容都是一个字符类,也就是说方括号内的表达式只匹配一个字符。
- /[a-za-z]/ 表示匹配大小写的任何字符。
- /[^a-z]/ 用来匹配任何不在a和z之间的字符。当 ^ 符号在 [ ] 中时,表示否的意思。
重复
- "*"表示这个模式可以重复出现0次或多次。
- "+"表示这个模式可以重复出现1次或多次。
- "?" 表示这个模式可以重复出现1次或0次。
- /[[:alnum:]]+/ 表示至少有一个字母字符。
子表达式
- 通常,可以将一个表达式分隔为几个子表达式,如:/(very)*large/ 表示very可以重复出现0次或多次,可以匹配“large”,“very large”,“very very large”等。
子表达式计数
- { } 中使用数字表达式来指定内容允许重复的次数。
- /(very){3}/ 表示very重复3次
- /(very){1,3}/ 表示very重复1~3次
- /(very){2, }/ 表示最少要重复2次
定位到字符串的开始或末尾
- ^ 用于正则表达式的开始,表示子字符串必须出现在被搜索字符串的开始处。
- $ 用于正则表达式的末尾,表示子字符串必须出现在被搜索字符串的末尾。
- /^bob/ 表示要在开始处匹配 bob - /com$/ 表示要以com结束
分支
- | 在正则表达式中表示模式选择。
- /com|edu|net/ 表示匹配com 或edu 或net
匹配特殊字符
- 如果要匹配一个特殊字符,如“.”,“{”,“$”,就必须在它们前面加一个反斜杠“\”。
- 如果要匹配一个反斜杠“\”,则必须用两个反斜杠“\\”来表示。
- 在php中,必须使用单引号来引用正则表达式模式。使用双引号引用的正则表达式将带来一些不必要的复杂性。
特殊字符含义
字符 | 意义 | 字符 | 意义 |
---|---|---|---|
\ | 转义字符 | ) | 子模式的结束 |
^ | 在字符串开始匹配 | * | 重复0次或更多次 |
$ | 在字符串末尾匹配 | + | 重复一次或更多次 |
. | 匹配除换行符\n之外的字符 | { | 最小/最大量记号的开始 |
| | 选择分支的开始(或) | } | 最小/最大量记号的结束 |
( | 子模式的开始 | ? | 标记一个子模式为可选的 |
字符 | 意义 |
---|---|
\ | 转义字符 |
^ | 非,仅用在开始位置 |
- | 用于指定字符范 |
上一篇: 果然是这护肤品