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的分组匹配字符串
正则表达式的分组匹配