Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中多次出现的正则表达式_Python_Regex - Fatal编程技术网

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