ma = re.match(r'<([\w]+>)', '<book>')
print(ma.groups()) # ('book>',)
ma = re.match(r'<([\w]+>)\1', '<book>book>')
print(ma.groups()) # ('book>',)
ma = re.match(r'(<)([\w]+>)\1\2', '<book><book>')
print(ma.groups()) # ('book>',)
('book>',)
('book>',)
('<', 'book>')
print(ma.groups()) # ('book>',)
ma = re.match(r'<([\w]+>)\1', '<book>book>')
print(ma.groups()) # ('book>',)
ma = re.match(r'(<)([\w]+>)\1\2', '<book><book>')
print(ma.groups()) # ('book>',)
('book>',)
('book>',)
('<', 'book>')
2019-07-28
“ma = re.match(r'<([\w]+>)\1', '<book>') ”中 “\1”代表的就是括号里面的分组,而括号里面的分组自身出现了一次,所以这行代码的分组一共出现了两次。但逗号后面的字符串却只包含一个分组,所以匹配失败,print(ma.groups())返回 NoneType。改为ma = re.match(r'<([\w]+>)', '<book>') 或者 ma = re.match(r'<([\w]+>)', '<book>book>') 就可以了。简而言之,\1表示的是第一个分组的复用。如果有多个圆括号,即有多个分组,那么\num代表的是第num个分组的复用。
2019-07-28
“ma = re.match(r'<([\w]+>)\1', '<book>') ”中 “\1”代表的就是括号里面的分组,而括号里面的分组自身出现了一次,所以这行代码的分组一共出现了两次。但逗号后面的字符串却只包含一个分组,所以匹配失败,print(ma.groups())返回 NoneType。改为ma = re.match(r'<([\w]+>)', '<book>')就可以了。简而言之,\1表示的是第一个分组的复用。如果有多个圆括号,即有多个分组,那么\num代表的是第num个分组的复用。
2019-07-28
虽然老师发音有点问题,但是课程真的是干货满满啊!!一句不落从头看到尾,收获颇丰~吐槽发音的是什么心态,真实醉了。妨碍你学知识了?
2019-05-26
好像这个完全不可以啊~~~
In [94]: ma = re.match(r'<([\w]+>)[\w]+</\1', '<book>python<book>')
In [95]: ma.group()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
In [94]: ma = re.match(r'<([\w]+>)[\w]+</\1', '<book>python<book>')
In [95]: ma.group()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
2018-12-19
LogA:affgh=500, com.tencent.uu.z
LogB:affgh=600, com.laun.abc
例如有两行log,需要匹配的是每行结尾处格式为“com.xxx.xxx...”的apk包名,包名长度不确定。请问该怎样写正则表达式来匹配?
LogB:affgh=600, com.laun.abc
例如有两行log,需要匹配的是每行结尾处格式为“com.xxx.xxx...”的apk包名,包名长度不确定。请问该怎样写正则表达式来匹配?
2018-12-08
ma = re.match(r'<(?P<mk1>tr>).*</(?P=mk1)','<tr><td>aa</td><td>bb</td><td>cc</td></tr>')
这个可以匹配<tr>和</tr>这样形式的XML,有收获,谢谢老师
这个可以匹配<tr>和</tr>这样形式的XML,有收获,谢谢老师
2018-09-28