擅长:python、mysql、java
<p>我们可以首先构建一个正则表达式,用于识别<em>正</em>整数:</p>
<pre><code>from re import compile
INTEGER_REGEX = compile(r'\b\d+\b')
</code></pre>
<p>这里<code>\d</code>代表<em>数字</em>(因此<code>0</code>,<code>1</code>,等等),一个或多个</em>的<code>+</code>,和<code>\b</code>是<em>单词边界</em></p>
<p>然后我们可以使用<code>INTEGER_REGEX.findall(some_string)</code>从输入中识别所有正整数。现在唯一要做的就是遍历列表的元素,并将<code>INTEGER_REGEX.findall(..)</code>的输出转换为元组。我们可以通过以下方式实现:</p>
<pre><code>output = [tuple(INTEGER_REGEX.findall(l)) for l in my_list]
</code></pre>
<p>对于给定的样本数据,这将产生:</p>
<pre><code>>>> [tuple(INTEGER_REGEX.findall(l)) for l in my_list]
[('123', '321'), ('223', '32221'), ('19823', '328771')]
</code></pre>
<p>请注意,不是单独单词的数字将<em>不</em>匹配。例如,<code>'see you l8er'</code>中的<code>8</code>将不匹配,因为它不是一个单词</p>