一、正则表达式
1. 正则表达式的作用
正则表达式是一种可以让复杂的字符串问题变得简单的工具
问题:判断手机号是否合法
# 方法1:不使用正则
tel = '15982338687'
if len(tel) != 11:
print('不是合法的手机号')
else:
for i in tel:
if not '0' <= i <= '9':
print('不合法的手机号')
break
else:
if tel[0] != '1':
print('不合法的手机号')
elif '3' <= tel[1] <= '9':
print('合法')
else:
print('不合法的手机号')
# 方法2:
tel = '15982338687'
from re import fullmatch
print(fullmatch(r'1[3-9]\d{9}', tel) != None)
# 正则表达式 切割操作(示例)
from re import split
str2 = '24+85-545*455+954'
print(split(r'[+*-]',str2))
2. fullmatch
函数
-
fullmatch
(正则表达式, 字符串) - 判断字符串和正则表达式是否完全匹配(判断整个字符串是否符合正则表达式所描述的规则),如果不符合返回None -
python提供正则表达式的方式:直接将正则表示作为一个字符串内容(正则需要使用引号引起来,而且引号前面一般需要加r)
二、正则表达式语法
from re import fullmatch
导入模块
- 写正则表达式都是通过正则符号来描述字符串规则
1. 匹配类符号
匹配类符号是用来规定字符 (用来描述对字符的要求)
匹配类符号 | 作用说明 |
---|---|
1) 普通字符 | 除了特殊符号以外的符号都是普通字符(在正则中表示符号本身) |
2) . | 匹配任意一个字符 |
3) \d | 匹配任意一个数字字符 |
4) \s | 匹配任意一个空白字符 (空白字符:’ ‘、’\n’、‘\t’) |
5) \w | 匹配任意一个数字、字母、下划线或者中文 |
6) \D、\S、\W | |
\D | 匹配任意一个非数字字符 |
\S | 匹配任意一个非空白字符 |
\W | 匹配任意一个非数字、字母、下划线或者中文的字符 |
# 1) 普通字符
print(fullmatch(r'abc', 'abc'))
# 2) .
print(fullmatch(r'a.c', 'a+c'))
print(fullma