最贊回答 / 為何_
小括號代表使用了分組,正則語法就是這樣,不必糾結.就像python遇到xxx()就知道是調用函數一樣.\1?等于?前面括號里的匹配規則,就相當于? ([\w]+>)\1? =??([\w]+>)[\w]+>兩次這個匹配規則.你可以理解成\1是個變量,保存了前面括號里的匹配語法并使用? 即 \1 = (匹配語法),? ?使用\1?就是使用括號里語法? ? 有幫助的話請給個最佳回答
2019-12-22
最新回答 / 大龍貓_
網頁更新了,你可以這樣寫:r'src=//.+\.jpg' , buf?先把//雙斜杠打頭的這些給抓出來,再在前面加上? added_str = 'http:'再操作就行了
2019-09-27
ma = re.match(r'(<)([\w]+>)\1\2', '<book><book>') 等價于 ma = re.match(r'(<)([\w]+>)<book>', '<book><book>')
print(ma.groups())
# ('<', 'book>') \1 表示< \2 表示 book>
print(ma.groups())
# ('<', 'book>') \1 表示< \2 表示 book>
2019-07-28
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