2、

2



11
正则表达式语法--分组匹配

正则表达式语法--边界匹配

r'<([\w]+>)[\w]+</\1' 小括号中作为一个分组,中间的[\w]+表示匹配一个或多个数字字母 下划线
<\表示HTML中的标签结尾,\1表示再次使用小括号中的匹配内容在匹配一次
'正则表达式语法'
# 匹配的字符串也有[]时,需要转义,如r'\[[\w]\]'
# 字符匹配
# . 匹配\n除外的任意字符
# [...] 匹配字符集,如[a-zA-Z0-9]
# [\d]/[\D] 匹配数字/非数字
# [\s]/[\S] 匹配空白/非空白
# [\w]/[\W] 匹配单词字符[a-zA-Z0-9]/非单词字符
# 多次匹配
# * 匹配前一个字符0次或无限次,如r'[A-Z][a-z]*'可以匹配前面大写后面小写的任意个字符
# + 匹配前一个字符1次或无限次,如r'[_a-zA-Z]+[_\w]'匹配下划线或字母开头的字符,即匹配有效变量
# ? 匹配前一个字符0次或1次,[1-9]?[0-9]匹配有效的两位数
# {m}/{m,n} 匹配前一个字符m次或者n次,如r'[a-zA-Z0-9]{6,10}@163.com'匹配6-10个字符的邮箱帐号,即匹配指定次数的的字符
# *?/+?/?? 匹配模式变为非贪婪,即尽可能少匹配字符,r'[A-Z][a-z]*?只匹配符合的0次
# 边界匹配,强匹配
# ^ 匹配字符串开头如,r'^[\w]{4,10}@163.com$'匹配以任意4-10个有效字符开头,与@163.com结尾的字符
# $ 匹配字符串结尾
# \A/\Z 指定的字符串必须出现在开头或结尾
# 分组匹配
# | 匹配左右任意一个表达式
# (ab) 括号中表达式作为一个分组
# \<number> 引用编号为num的分组匹配到的字符串
# (?P<name>) 分组起一个别名
# (?P=name) 引用别名为name的分组匹配字符串
表达式语法2
表达式语法

正则表达式语法
正则表达式语法
正则表达式匹配前后端
| 匹配左右任意一个表达式
(ab)括号中表达式作为一个分组
\<number> 引用编号为num的分组匹配到的字符串
(?P<name>)分组起一个别名
(?P=name)引用别名为name的分组匹配字符串
^ 匹配字符串开头
$ 匹配字符串结尾
\A/\Z 指定的字符串必须出现在开头/结尾

| 匹配左右任意一个表达式
(ab) 括号中表达式作为一个分组
\<number> 引用编号为number的分组匹配到的字符串
(?P<name>) 分组起别名
(?P=name) 引用别名为name的分组匹配字符串
正则表达式(三)

正则表达式语法
pppppp
这里没听懂
| 匹配左右任意一个表达式
(ab)括号中表达式作为一个分组
\<number> 引用编号为num的分组匹配到的字符串
(?P<name>)分组起一个别名
(?P=name)引用别名为name的分组匹配字符串

给分组起名字
正则表达式的边界匹配
^开头
$结尾
ma = re.match(r'^[\w]{4,10}@163.com$','imooc@163.com')
| 匹配左右任意一个表达式
(ab)括号中表达式作为一个分组
\<number> 引用编号为num的分组匹配到的字符串
(?P<name>)分组起一个别名
(?P=name)引用别名为name的分组匹配字符串
正则表达式的分组匹配