一、正则表达式是什么
正则表达式就是记录文本规则的代码。
// 匹配中国的电话号码
0\d\d-\d\d\d\d\d\d\d\d
0\d{2}-\d{8}
二、安装正则测试软件
地址: https://deerchao.net/tools/regester/index.htm
三、常用元字符
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
// 匹配 qq 号,5——12位
^\d{5,12}$
字符转义
常用的需要转义的字符:(\), *(*), .(.)
重复
常用限定符
代码/语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
Windows\d+ //匹配Windows后面的1个或更多数字
^\w+ //匹配一行的第一个单词(或整个字符串的第一个单词,具体匹配哪个意思得看选项设置)
字符类,直接写到中括号 [] 中即可
[aeiou] //匹配任何一个英文元音字母
[.?!] //匹配标点符号
分枝条件 (|)
0\d{2}-\d{8}|0\d{3}-\d{7} //这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)
\(0\d{2}\)[- ]?\d{8}|0\d{2}[- ]?\d{8} //匹配3位区号的电话号码
\d{5}-\d{4}|\d{5} //匹配美国的邮政编码
分组 (小括号)
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) // 匹配一个ip地址
反义 (字符串前面加 ^,元字符变大写)
常用的反义代码
代码/语法 | 说明 |
---|---|
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^aeiou] | 匹配除了aeiou这几个字母以外的任意字符 |
\S+ //匹配不包含空白符的字符串
<a[^>]+> //匹配用尖括号括起来的以a开头的字符串
后向引用
用于重复搜索前面某个分组匹配的文本