回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<pre><code>import re
caps = "bottle caps/ soda caps/ pop caps"
regex = re.findall(r"\w[1-6]", caps)
print(regex)
</code></pre>
<p>输出为:</p>
<pre><code>[]
</code></pre>
<p>但是如果我这么做</p>
<pre><code>import re
caps = "bottle caps/ soda caps/ pop caps"
regex = re.findall(r"\w[1-6]*", caps)
</code></pre>
<p>输出为:</p>
<pre><code>['b', 'o', 't', 't', 'l', 'e', 'c', 'a', 'p', 's', 's', 'o', 'd', 'a', 'c', 'a', 'p', 's', 'p', 'o', 'p', 'c', 'a', 'p', 's']
</code></pre>
<p>如何使其输出:</p>
<pre><code>["bottle caps", "soda caps, "pop caps"]
</code></pre>
<p>我知道你们会推荐使用<code>.split</code>,但我想更了解正则表达式</p>
<p>我也试过这个:</p>
<pre><code>import re
caps = "bottle caps/ soda caps/ pop caps"
regex = re.findall(r"\w[1-6]?\s*\w[1-3]*", caps)
print(regex)
</code></pre>
<p>输出:</p>
<pre><code>['bo', 'tt', 'le', 'ca', 'ps', 'so', 'da', 'ca', 'ps', 'po', 'p c', 'ap']
</code></pre>
<p>发生什么事了?你知道吗</p>