1.字符
总结:
. | 匹配除“\n”以外的所有字符 |
---|---|
[…] | 字符集,…为所给出的范围,如:[a-zA-Z]表示逐个列出所有字符,[0-9]表示逐个列出所有数字 |
[^…] | ^表示取反,如 [^0-9] 等同于出数字以外所有字符 |
[…]并[…] | 也可以进行并操作 |
re.compile(r’.')
说明:指定除换行符”\n“以外的所有字符
示例:
import re
def print_hi():
input_str = 'abc今天风和日丽'
pattern = re.compile(r'.')#正则化模板
out = re.findall(pattern,input_str)
print(out)
if __name__ == '__main__':
print_hi()
re.compile(r’[abc]')
说明:指定包含的字符abc
示例:
re.compile(r’[a-zA-Z]')
说明:指定所有大小写的英文字母
示例:
re.compile(r’[^a-zA-Z]')
说明:指定不匹配所有大小写的英文字母
示例:
re.compile(r’[a-zA-Z]|[0-9]')
说明:指定匹配所有大小写的英文字母以及所有数字
示例:
2.预定义(转义)字符集
总结:
\d | 表示数字,等同于字符表示[0-9] |
---|---|
\D | 表示非数字,除数字以外的所有字符 ,等同于字符表示[^\d] |
\s | 表示空格 |
\S | 表示非空格,除空格以外的所有字符,等同于字符表示[^\s] |
\w | 表示单词字符,除空格以外的所有字符,等同于字符表示[a-zA-Z0-9] |
\W | 表示非单词字符,等同于字符表示[^\w] |
演示:
3.数量词(用在字符后)
* | 0或多次匹配 |
---|---|
+ | 1或多次匹配 |
? | 0或1次匹配 |
{n} | 精确匹配n次 |
{m,n} | 精确最少匹配m次,最多匹配n次 |
re.match(pattern,target) | 从开头开始匹配,若出现不匹配就停止 |
re.search(pattern,target) | 会跳过不匹配位置,继续向后寻找是否有匹配字符串 |
*演示:
+演示:
?演示:
{n} 演示:
{m,n}演示:
注意:执行match与search时若匹配不成功,则返回一个Nonetype,若不做判断处理容易报错!!!
演示:
4.替换和修改
re.sub(pattern,replace,target,[count]) | replace去替换规则,返回字符串 |
---|---|
re.subn(pattern,replace,target,[count]) | replace去替换规则,返回元组,里面有替换了几次 |
re.split(pattern,target) | 按照pattern规则去切分target,返回list |
‘(?P<命名组1>[规则1])(?P<命名组2>[规则2])’ | 根据命名组去调用规则 |
sub演示:
subn演示:
split演示:
‘(?P<命名组1>[规则1])(?P<命名组2>[规则2])’
注意第二个规则会在第一个规则基础上执行,会被覆盖