正则表达式
1、字符组
[]
:允许匹配一组可能出现的字符- 示例:
[Pp]ython
=> 匹配大小写的python
2、区间
-
:匹配符合范围的字符,大小写敏感- 示例:
[0-9]
=> 匹配0-9之间的所有数字[a-z]
=> 匹配a-z之间的所有字母[a-zA-Z]
=> 大小写全部匹配
3、转义字符
\
:用于匹配一些特殊字符
4、非集(取反)
^
:匹配不在集合中的字符- 示例:
[^0-9]
=> 匹配0-9以外的字符,不包括0-9
5、快捷方式
符号 | 作用 |
---|---|
\d |
匹配所有数字 |
\w |
匹配所有字符,包含数字、大小写字符 |
\s |
匹配空白字符、含空格、tab、换行等 |
\b |
匹配单词边界。示例:\bmaster\b => 匹配所有边界的master单词 |
6、开始和结束
^
:指定的是一个字符串的开始$
:指定的是一个字符串的结束- 示例:
^python$
=>匹配以p开头以n结尾的字符串
7、任意字符
.
:匹配单个字符,只能出现在[]
外
注:不能匹配换行符(\n)
8、可选字符
?
:指定一个字符、字符组或其他基本单元可选,匹配1次或0次- 示例:
bu?nd
=>匹配bund
或bnd
,可选的
9、匹配多个数据
{N}
:匹配在字符组后加上,表示它之前的字符组出现N次- 示例:
\d{9}
=>匹配任意的9个数字
10、重复区间
{M,N}
:M是上界,N是下界- 示例:
\d{8,10}
:匹配8~10个任意数字
注意⚠️:{}
后加?
,即当匹配到上界时就不再匹配,不加?
则为贪婪模式,尽可能多的匹配字符
- 即
{M,}
:匹配M个或无数任意多个
11、速写
+ |
匹配1到无数个,即{1,} |
---|---|
* |
匹配0到无数个,即{0,} |
- 示例:
\d+
\d*
^f.+
=>匹配f
开头的数据
12、或者条件
|
:匹配多个条件中的1个条件- 示例:
(.jpg|.png)
=> 匹配jpg格式或者png格式的数据
13、非捕获分组
(?:表达式)
:不捕获数据,也能使用分组- 示例:
\b(?:\w|\w{4})\b
=> 匹配两个或个四个字母组成的单词
案例
(1)匹配所有手机号码
- 第一位须以1开头
- 第二位可以是
[3,4,5,7,8]
中的任意一个数字- 后9位可以是
[0-9]
中任意一个数字
- 示例:
^1[34578]\d{9}
[34578]
=> 匹配[]
中可能出现的数字\d{9}
=> 匹配9次
(2)匹配网站地址
http.*/$
.
=> 匹配单个字符*
=> 匹配0到多个任意字符/$
=> 匹配以/
为结尾
(3)分组
()
:将表达式分组- 示例:
(\d{4})-(\d{7})
=> 分别匹配两组数据
(4)匹配学号
- 示例:年份-班级代码-在班中排序
表达式 | 解释说明 |
---|---|
(\d{4})[\-\s]?(\d{4})[\-\s]?(\d{2}) |
(匹配四次)匹配0-1个空格或-(匹配四次)匹配0-1个空格或-(匹配两次) |
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/114862.html