在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  Python/ 關(guān)于正則表達(dá)式獲取捕獲組的問(wèn)題

關(guān)于正則表達(dá)式獲取捕獲組的問(wèn)題

我現(xiàn)在有這樣一個(gè)字符串5900A7395900A7545900A414,我想把這個(gè)字符串分為三個(gè)單獨(dú)的字符串5900A739,5900A754,5900A414如何使用捕獲組才能實(shí)現(xiàn)上面的需求?注意,這只是一個(gè)例子,實(shí)際情況比這個(gè)要復(fù)雜,相同字符串的長(zhǎng)度是不固定的。例如:上面例子中相同字符串是5900A,也有可能是5900A7,后面不同字符串的長(zhǎng)度也不固定。請(qǐng)問(wèn)這種要如何截取出單獨(dú)的字符串?
自己嘗試了捕獲組,但是都只能捕獲固定長(zhǎng)度的字符。先提前謝謝大家了。

回答
編輯回答
半心人

clipboard.png

2017年12月23日 20:25
編輯回答
青檸

感覺(jué)不用正則,直接找那個(gè)共同部分切割,然后看看結(jié)果在處理下就行了吧...

string = "5900A7395900A7545900A414"

tag = '59'

tmp_list = string.split(tag)

result = [''.join([tag, i]) for i in tmp_list if i != '']
print(result)    # ['5900A739', '5900A754', '5900A414']

正則的話, 我在程序員工具箱-正則測(cè)試這個(gè)網(wǎng)站測(cè)試沒(méi)問(wèn)題,改寫(xiě)到代碼結(jié)果出現(xiàn)個(gè)數(shù)字 - - 不知道為啥 59.*?((?!59).)*測(cè)試正則條件,你可以自己看看改改

import re
string = "5900A7395900A7545900A414"
pattern = re.compile(r'(59.*?((?!59).)*)')
print(pattern.findall(string))
# [('5900A739', '9'), ('5900A754', '4'), ('5900A414', '4')]
2018年8月19日 08:50