【发布时间】:2016-08-06 17:34:11
【问题描述】:
使用 Python 3.4 我想匹配可以具有以下格式的字符串:
s1 = "Germany ; Federal Republic of Germany\tRépublique fédérale d'Allemagne\n"
s2 = "English ; English language\tanglais\n"
s3 = "February\tfévrier\n"
注意两种语言之间是如何存在制表符的,如果一种语言中有多个单词,则它们除以" ; "(两个空格,分号,一个空格)。
我的目标是读取每种语言的第一个变量。所以我想匹配
-
s1到("Germany", "République fédérale d'Allemagne") -
s2到("English", "anglais") -
s3到("February", "février")
如果\t的每一侧只有一对词汇或多个表达式。
问题是我找不到正确的模式。我尝试了多个表达式(使用search(),然后在返回的匹配对象上调用groups())似乎无法解决问题。
s1 示例:
-
r"([\w ]*)\t([\w ]*)"找到(' Federal Republic of Germany', 'République fédérale d') -
r"(.*),?\t(.*),?"找到('Germany ; Federal Republic of Germany', "République fédérale d'Allemagne")
这两个例子都没有达到我想要的效果。我不知道下一步该尝试什么。我确信有一种方法可以匹配 " ; " 之后的任何字符,直到 \t 但我现在不知道。
我们将不胜感激。
【问题讨论】:
-
试试 r(\w*)[^\t]*;.*\t(.*)