回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>假设你有这个字符串:'catdogfoxcat'</p>
<p>我可以使用以下正则表达式轻松地将其拆分:
<code>re.compile('(dog)|(cat)|(fox)').findall(the_string)</code></p>
<p>在python中,结果是:</p>
<pre><code>[('', 'cat', ''),
('dog', '', ''),
('', '', 'fox'),
('dog', '', ''),
('dog', '', ''),
('', '', 'fox'),
('', 'cat', '')]
</code></pre>
<p>太完美了</p>
<p>现在让我们将该字符串改为:“catdogaaadoggdogbcat”</p>
<p>如果第三个regex项是任意的(aaa/bbb/随便什么),我想不出怎么做。我想要这样的东西:<code>re.compile('(dog)|(cat)|(.*?)').findall(the_string)</code></p>
<p>目前我得到以下结果,这是没有意义的</p>
<pre><code>[('', 'cat', ''),
('dog', '', ''),
('', '', ''),
('', '', ''),
('', '', ''),
('dog', '', ''),
('dog', '', ''),
('', '', ''),
('', '', ''),
('', '', ''),
('', 'cat', ''),
('', '', '')]
</code></pre>
<p>这里出了什么问题?如何修复正则表达式</p>
<p>我更期待这样的结果:</p>
<pre><code>[('', 'cat', ''),
('dog', '', ''),
('', '', 'aaa'),
('dog', '', ''),
('dog', '', ''),
('', '', 'bbb'),
('', 'cat', '')]
</code></pre>