2017-02-09 54 views
-1

我試圖分拆前瞻,但它不適用於最後一次出現。我該怎麼做呢?分拆前瞻

my_str = 'HRC’s' 
import re 
print(re.split(r'.(?=&)', my_str)) 

我的輸出:

['HR', '&#226', '&#128', '™s'] 

我所需的輸出:

['HRC', '&#226', '&#128', '&#153', 's'] 
+3

提示:它與'.' ... – 2017-02-09 21:04:05

+0

輸入(其中不包含冒號)不匹配指定的輸出(在最後一項中有冒號)。 – TigerhawkT3

+0

@JackManey我確實刪除了'.',但仍然是相同的 – mtkilic

回答

3

re.findall()使用功能的解決方案:

my_str = 'HRC’s' 
result = re.findall(r'\w+|&#\d+(?=;)', my_str) 
print(result) 

輸出:

['HRC', '&#226', '&#128', '&#153', 's'] 
+0

非常感謝你這個偉大的作品! – mtkilic

+0

@MahmutKilic,不客氣 – RomanPerekhrest

+1

另一種方法:'result = re.sub(r「&#(\ d +);」,lambda m:chr(int(m.group(1))),my_str)' – AJNeufeld