元字符
| 代码 | 说明 |
|---|---|
| . | 匹配除换行符意外的任意字符 |
| \w | 匹配字母或数字或下划线或汉字 |
| \s | 匹配任意的空白字符 |
| \d | 匹配数字 |
| \b | 匹配单词的开始或者结束 |
| ^ | 匹配单词的开始 |
| $ | 匹配字符串的结束 |
字符转义
如果要想查元字符的话,比如要匹配www.baidu.com,那么由于.已经被用做元字符了,所以你需要\.这样转义下才能匹配到.
重复
| 代码/语法 | 说明 |
|---|---|
| * | 重复零次或更多次 |
| + | 重复一次或更多次 |
| ? | 重复零次或一次 |
| {n} | 重复 n 次 |
| {n,} | 重复 n 次货更多次 |
| {n,m} | 重复 n 到 m 次 |
分支条件
比如我们需要同时匹配(010)223242322和0559-222341242,我们通常使用|来进行区分,正则如下:
(0?\d{4}-\d{8})|(\(0\d{2}\)\d{8})
分组
比如,我们要匹配 ip 地址221.222.123.223,我们就需要使用分组,通常我们使用小括号来指定子表达式,然后可以指定这个子表达式的重复次数
(\d{1,3}\.)\d{1,}
但是,这样,我们匹配到的也可能是300.300.300.300这样的不可能存在的 ip 地址,所以,我们只能使用冗长的分组
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
反义
| 代码/语法 | 说明 |
|---|---|
| \W | 匹配任意不是字母,数字,下划线,汉子的字符 |
| \S | 匹配任意不是空白的字符 |
| \D | 匹配任意非数字的字符 |
| \B | 匹配不是单词开头或结束的位置 |
| [^x] | 匹配除了x 以外的任意字符 |
| [^aeiou] | 匹配除了 aeiou 这几个字母以外的任意字符 |
举例,我们有一条字符串 cv?uuid=9f0d65cf6ba397d5b5cb0c9aa0c12df1&tc=113283078&p=kxescore.exe&c=1335&f=json
我们要匹配不包含 f=json 以外的内容,正则表达式如下:
[^(f=json)]
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客!