python中多次出现的正则表达式
我需要解析具有多个语言代码的行,如下所示python中多次出现的正则表达式,python,regex,Python,Regex,我需要解析具有多个语言代码的行,如下所示 008800002 Bruxelles-Nord$Br�ussel Nord$<deu>$Brussel Noord$<nld> 我不知道如何获得重复元素。 需要 Bruxelles Nord$Br�ussel Nord$$Brussel Noord$作为stop_name,而作为language。\b(\d+)\b\s*|(.*)(=分两步进行。首先将ID与名称/语言对分开;然后在名称/语言部分使用re.findite
008800002 Bruxelles-Nord$Br�ussel Nord$<deu>$Brussel Noord$<nld>
我不知道如何获得重复元素。
需要
Bruxelles Nord$Br�ussel Nord$$Brussel Noord$
作为stop_name,而
作为language。\b(\d+)\b\s*|(.*)(=分两步进行。首先将ID与名称/语言对分开;然后在名称/语言部分使用re.finditer
对这些对进行迭代,并将它们填入口述
\b(\d+)\b\s*|(.*?)(?=<)<(.*?)>
import re
line = u"008800002 Bruxelles-Nord$Br�ussel Nord$<deu>$Brussel Noord$<nld>"
m = re.search("(\d+)\s+(.*)", line, re.UNICODE)
id = m.group(1)
names = {}
for m in re.finditer("(.*?)<(.*?)>", m.group(2), re.UNICODE):
names[m.group(2)] = m.group(1)
print id, names
重新导入
line=u“008800002北布鲁塞尔$Br�北乌塞尔$$Brussel Noord$”
m=re.search((\d+)\s+(.*),第行,re.UNICODE)
id=m.group(1)
名称={}
对于re.finditer((.*)、m.group(2)、re.UNICODE中的m:
名称[m.group(2)]=m.group(1)
打印id、名称
您可能希望首先解决编码问题。这是Brüssel
,而不是Br�ussel
。
import re
line = u"008800002 Bruxelles-Nord$Br�ussel Nord$<deu>$Brussel Noord$<nld>"
m = re.search("(\d+)\s+(.*)", line, re.UNICODE)
id = m.group(1)
names = {}
for m in re.finditer("(.*?)<(.*?)>", m.group(2), re.UNICODE):
names[m.group(2)] = m.group(1)
print id, names