正则表达式
01 . 匹配类符号
-
正则表达式
- 正则表达式是一种可以让一些复杂的字符串问题变得简单的工具。
-
正则语法(通用)
- re模块:
fullmatch(正则表达式,字符串) - 判断整个字符串是否满足正则表达式描述的规则(完全匹配)
Python提供正则表达式的方法:提供一个字符串,字符串内容是一个正则表达式,这个字符串的最前面需要加 r 。
Python的正则表达式:r ’ 正则 ’
js的正则表达式:/ 正则 /
oc的正则表达式:/ 正则 /
- 正则语法内容
包括:匹配类符号、控制次数的符号、分组和分支、检测类符号
-
匹配类符号 - 约束字符串中某个位置上的字符是什么样的字符
-
普通符号(字符)
在正则表达式中表示字符本身的符号就是普通符号(除特殊符号以外的都是普通符号)
from re import fullmatch # r'abc' - 表示一个字符串有三个字符,分别是a、b、c result = fullmatch(r'abc','abc') print(result) # <re.Match object; span=(0, 3), match='abc'>
- . - 点表示匹配任意一个字符
# r'.'bc' - 表示一个字符串,有三个字符,第一个字符是任意字符,第二个和第三个分别是b和c result = fullmatch(r'.bc','abc') print(result) # <re.Match object; span=(0, 3), match='abc'> result = fullmatch(r'a..c','a-8c') print(result) # <re.Match object; span=(0, 4), match='a-8c'>
- \ d - 匹配任意一个数字字符
result = fullmatch(r'a\db\dc','a2b0c') print(result) # <re.Match object; span=(0, 5), match='a2b0c'>
- \ s - 匹配任意一个空白字符
# 空白字符:任何可以产生空白效果的符号,例如:空格、\t、\n result = fullmatch(r'x\sy','x y') print(result) # <re.Match object; span=(0, 3), match='x y'> result = fullmatch(r'x\sy','x\ny') print(result) # <re.Match object; span=(0, 3), match='x\ny'>
-
\ D - 匹配任意一个非数字字符
result = fullmatch(r'a\Db\Dc','a2b0c') print(result) # None result = fullmatch(r'a\Db\Dc','awbvc') print(result) # <re.Match object; span=(0, 5), match='awbvc'>
-
\ S - 匹配任意一个非空白字符
result = fullmatch(r'x\Sy','x y') print(result) # None result = fullmatch(r'x\Sy','xay') print(result) # <re.Match object; span=(0, 3), match='xay'>
-
[字符集] - 匹配字符集中的任意一个字符
[mnab] - 匹配m或者n或者a或者b
[\dmn]、[m\dn] - 匹配任意数字或者m或者n
[\d\s] - 匹配任意数字或者任意空白
[1-9] - 匹配1到9中任意数字
[a-z] - 匹配任意一个小写字母
[1-5a-z] - 匹配数字1-5或者任意小写字母
[A-Za-z] - 匹配任意一个字母
[\u4e00-\u9fa5] - 匹配任意一个中文
[\u4e00-\u9fa5wp] - 匹配任意一个中文或者w或者p
result = fullmatch(r'x[myn]z','xyz') print(result) # <re.Match object; span=(0, 3), match='xyz'>
-
[^字符集] - 匹配不在字符集中的任意一个字符
-