回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一些短信。你可以在这里看到。你知道吗</p>
<pre><code>str1 = '{5723647 9 aqua\t \tfem nom/voc pl}{5723647 9 aqua\t \tfem dat sg}{5723647 9 aqua\t \tfem gen sg}'
str2 = '{27224035 2 equo_,equus#1\t \tmasc abl sg}{27224035 2 equo_,equus#1\t \tmasc dat sg}'
</code></pre>
<p>以下是我想要的:</p>
<pre><code>result1 = [('aqua', 'fem nom/voc pl'), ('aqua', 'fem dat sg'), ('aqua', 'fem gen sg')]
result2 = [('equus#1', 'masc abl sg'), ('equus#1', 'masc dat sg')]
</code></pre>
<p>如您所见,这里有两种变体:</p>
<ol>
<li>(任意文本,)(word-I-need)\t\t(form-I-need)。你知道吗</li>
<li>(anytext)(word-I-need)\t\t(form-I-need)。你知道吗</li>
</ol>
<p>下面是我尝试过的正则表达式:</p>
<pre><code>pattern = re.compile(r'\d* \d*(?:,| )(.*?)\t \t(.*?)}')
</code></pre>
<p>我得到的是:</p>
<pre><code>[('aqua', 'fem nom/voc pl'), ('aqua', 'fem dat sg'), ('aqua', 'fem gen sg')]
[('equo_,equus#1', 'masc abl sg'), ('equo_,equus#1', 'masc dat sg')]
</code></pre>
<p>但是,第二个必须是:</p>
<pre><code>[('equus#1', 'masc abl sg'), ('equus#1', 'masc dat sg')]
</code></pre>
<p>你有什么建议?谢谢!你知道吗</p>