2017-02-09 44 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