活动地址:CSDN21天学习挑战赛
re模块:100天精通Python(进阶篇)——第34天:正则表达式大总结_无 羡ღ的博客-CSDN博客
参数说明:
pattern: 匹配的正则表达式
string: 要匹配的字符串。
flags: 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
返回说明:
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,result为none。
result.group()为匹配的值。
字符 功能
. 匹配任意1个字符(除了\n)
[ ] 匹配[ ]中列举的字符
\d 匹配数字,即0-9
\D 匹配非数字,即不是数字
\s 匹配空白,即 空格,tab键
\S 匹配非空白
\w 匹配单词字符,即a-z、A-Z、0-9、_
\W 匹配非单词字符
字符 功能
* 匹配前一个字符出现0次或者无限次,即可有可无
+ 匹配前一个字符出现1次或者无限次,即至少有1次
? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m} 匹配前一个字符出现m次
{m,n} 匹配前一个字符出现从m到n次
字符 功能
^ 匹配字符串开头
$ 匹配字符串结尾
字符 功能
(ab) 将括号中字符作为一个分组
\num 引用分组num匹配到的字符串
(?P) 分组起别名
(?P=name) 引用别名为name分组匹配到的字符串
- 示例4:\num用法
-
- 需求:匹配出
www.itcast.cn
-
- import re
-
- labels = ["
www.itcast.cn
", "www.itcast.cn"
] -
- for label in labels:
- ret = re.match(r"<(\w*)><(\w*)>.*\2>\1>", label)
- if ret:
- print("%s 是符合要求的标签" % ret.group())
- else:
- print("%s 不符合要求" % label)
- 输出结果:
-
www.itcast.cn
是符合要求的标签www.itcast.cn 不符合要求
- 示例5:(?P
) (?P=name)用法 -
- 需求:匹配出
www.itcast.cn
-
- >>> import re
-
- >>> ret = re.match(r"<(?P
\w*)><(?P\w*)>.*(?P=name2)>(?P=name1)>" , "www.itcast.cn
") - >>> print(ret.group())
www.itcast.cn
-
- >>> ret = re.match(r"<(?P
\w*)><(?P\w*)>.*(?P=name2)>(?P=name1)>" , "www.itcast.cn"
) - >>> print(ret.group())
- Traceback (most recent call last):
- File "
" , line 1, in - AttributeError: 'NoneType' object has no attribute 'group'
暂无
了解到re模版的功能和一些使用场景。
暂无,本周找时间把本地环境搭一下,跑跑看。