import re
text='v101_renow.android.2.2.normal.1.alpha.apk?imsi=460029353813976&mobile=&old_version=renow.android.2.1.normal.1.alpha&channelid=3'
m = re.search(r"\w+_(renow.*)\.(apk|vir|ipa)\?imsi=(\d+)&mobile=&old_version=(.*)&channelid=(.*)", text)
if m:
print m.group(0), '\n', m.group(1),'\n', m.group(2),'\n', m.group(3),'\n', m.group(4),'\n', m.group(5)
else:
print 'not match'
以下是補充:
組是通過 "(" 和 ")" 元字元來標識的。 "(" 和 ")" 有很多在數學表示式中相同的意思;它們一起把在它們裡面的表示式組成一組。舉個例子,你可以用重複限制符,象 *, +, ?, 和 ,來重複組裡的內容,比如說(ab)* 將匹配零或更多個重複的 "ab"。
例子:如果不引入括號,增個表示式作為乙個組,是group(0)
>>> import re
>>> p=re.compile('\d-\d-\d')
>>> m=p.match('2-3-1')
>>> m.groups()
>>> m.group()
'2-3-1'
>>> m.group(1)
traceback (most recent call last):
file "", line 1, in
indexerror: no such group
如果引入括號,可以將上面的表示式分成3組,如下
>>> p=re.compile('(\d)-(\d)-(\d)')
>>> m=p.match('1-2-3')
>>> m.group()
'1-2-3'
>>> m.group(1)
'1'>>> m.group(0,2,1)
('2-3-1', '2', '1')
也可以給各個組取名字,例如,給第乙個陣列取名叫first
>>> p=re.compile('(?p\d)-(\d)-(\d)')
>>> m=p.match('1-2-3')
>>> m.group(1)
'1'>>> m.group('first')
'1'
python正則分組的應用
複製 如下 import re text v101 renow.android.2.2.normal.1.alpha.apk?imsi程式設計客棧 460029353813976 mobile old version renow.android.2.1.normal.1.alpha channeli...
leetcode 字母異位詞分組(python)
題目 給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。注意 需熟悉字典的相關使用方法 class so...
leetcode 字母異位詞分組 python3
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。python中使用 字典 維護乙個分組表,鍵值 key...