编程环境
-
windows 10
-
eclipse
前言
在一次Java程序设计课程中,在课堂上了解到了正则表达式,然后自己去百度了一番,发现正则表达式应用的范围还是比较广泛的,在Python爬虫爬取数据时候,也会用上正则表达式,所以决定花点心思去学习一下正则表达式。
正则表达式语法
- 普通字符
正则表达式 | 说明 |
---|---|
[123abc] | 匹配[…]括号里边的所有字符,相当于匹配1或2或3或a或b或c, 等价于[1|2|3|a|b|c] |
[^123abc] | 匹配除了[…]之外的所有字符,相当于匹配除了1,2,3,a,b,c之外的所有字符 |
[a-z] | 表示一个区间,匹配小写字母 |
[A-Z] | 表示一个区间,匹配大写字母 |
[0-9] | 表示一个区间,匹配0到9之间的数字 |
\d | 匹配数字,等价于[0-9] |
\D | 匹配非数字,等价于[^0-9] |
\w | 匹配字母、数字或者下划线,等价于[a-zA-z0-9_] |
\W | 匹配非字母、非数字或者非下划线,\W相当于匹配\w的补集字符,等价于[^a-zA-z0-9_] |
说明:\大写字母 和 \小写字母,匹配的字符内容是相反的,^代表取反的意思
- 非打印字符
正则表达式 | 说明 |
---|---|
\cx | 匹配由x指明的控制字符。例如, \cM 匹配一个 control-M 或回车符。x 的值必须是26个字母 |
\f | 匹配一个换页符 |
\n | 匹配一个换行符 |
\r | 匹配一个回车符 |
\t | 匹配一个制表符 |
\v | 匹配一个垂直制表符 |
\s | 匹配所有的空白字符,等价于[\f\n\r\t\v] |
\S | 匹配所有非空白字符,等价于[^\f\n\r\t\v] |
说明:控制字符主要有LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等,存在于Ascii码中的第0~31号及127号中。想了解更多关于控制字符的内容请点击这里
- 特殊字符
正则表达式 | 说明 |
---|---|
$ | 匹配输入字符串的结尾位置,要匹配 $ 字符本身,请使用\$。 |
( ) | 标记一个子表达式的开始和结束位置,要匹配这些字符,请使用 \( 和 \) |
* | 匹配前面的子表达式零次或多次,要匹配 * 字符,请使用 \* |
+ | 匹配前面的子表达式一次或多次,要匹配 + 字符,请使用 \+ |
. | 匹配除换行符 \n 之外的任何单个字符,要匹配 . ,请使用 \. |
[ | 标记一个中括号表达式的开始。要匹配 [ ,请使用 \[ |
? |