我試圖提取一個字符串的數字以及之前和之後的字符(不包括數字和空格)。的函數的預期收益是元組的列表,與具有形狀的每個元組:使用Python查找與正則表達式重疊的序列
(previous_sequence, number, next_sequence)
例如:
string = '200gr T34S'
my_func(string)
>>[('', '200', 'gr'), ('T', '34', 'S')]
我的第一次迭代是使用:
def my_func(string):
res_obj = re.findall(r'([^\d\s]+)?(\d+)([^\d\s]+)?', string)
但是這個函數並沒有達到我期望的效果,當我傳遞一個像'2AB3'
這樣的字符串時,我想輸出[('','2','AB'), ('AB','3','')]
,而是顯示[('','2','AB'), ('','3','')]
,因爲'AB'是以前輸出的一部分。
我該如何解決這個問題?
您可以檢查另一個答案和反饋! – SIslam