正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
正则表达式:
正则表达式(Regular Expression
)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
正则表达式是繁琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。
(1)简介
正则表达式的使用,可以通过简单的办法来实现强大的功能。下面先给出一个简单的示例:
^[0-9]+abc$
序号 | 描述 |
---|---|
1 | ^ 为匹配输入字符串的开始位置 |
2 | [0-9]+ 匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个 |
3 | abc$ 匹配字母abc 并以abc 结尾,$ 为匹配输入字符串的结束位置 |
var str = "123abc";
var patt1 = /^[0-9]+abc$/;
document.write(str.match(patt1));
获得的匹配的表达式:123abc
(2)特殊字符
所谓特殊字符,就是一些有特殊含义的字符。许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:
序号 | 特别字符 | 描述 |
---|---|---|
1 | $ | 匹配$ 字符本身,请使用 \$ |
2 | () | 匹配这些字符,请使用\( 和\) |
3 | * | 要匹配* 字符,请使用\* |
4 | + | 要匹配+ 字符,请使用\+ |
5 | . | 要匹配. ,请使用\. |
6 | [ | 要匹配[ ,请使用\[ |
7 | ? | 要匹配? 字符,请使用\? |
8 | \ | 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。 例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\’ 匹配 “”,而 ‘(’ 则匹配 "(" |
9 | ^ | 要匹配^ 字符本身,请使用\^ |
10 | { | 要匹配{ ,请使用\{ |
11 | | | 要匹配| ,请使用\| |
re
模块使 Python 语言拥有全部的正则表达式功能。
1、re.match函数
re.match
尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
函数语法:
re.match(pattern, string, flags=0)
函数参数说明:
序号 | 特别字符 | 描述 |
---|---|---|
1 | pattern | 匹配的正则表达式 |
2 | string | 要匹配的字符串 |
3 | flags | 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等 |
2、re.search方法
re.search
扫描整个字符串并返回第一个成功的匹配。
函数语法:
re.search(pattern, string, flags=0)
函数参数说明:
序号 | 特别字符 | 描述 |
---|---|---|
1 | pattern | 匹配的正则表达式 |
2 | string | 要匹配的字符串 |
3 | flags | 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等 |
3、re.match与re.search的区别
(1)re.match
只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;
(2)re.search
匹配整个字符串,直到找到一个匹配。