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