擅长:python、mysql、java
<p>在您的模式中,您使用了4个交替,但没有考虑到单词<code>data</code>。在</p>
<p>您可以使用<a href="https://docs.python.org/3/library/re.html#re.match" rel="nofollow noreferrer">re.match</a>代替从字符串开头开始匹配,并使用<code>data\d+$</code>匹配后跟1+个数字的数据,直到字符串结束:</p>
<pre><code>import re
strings_of_text = ['data0', 'data23', 'data2', 'data55', 'data_mismatch', 'green']
strings_to_keep = []
expression_to_use = r'data\d+$'
for string in strings_of_text:
# If the string is data#
if (re.match(expression_to_use, string)):
strings_to_keep.append(string)
print(strings_to_keep)
</code></pre>
<p><a href="https://ideone.com/yjiDiz" rel="nofollow noreferrer">Python demo</a></p>
<p>您可以继续使用筛选后的集合,而不是使用例如filter:</p>
^{pr2}$
<p>结果</p>
<pre><code>['data0', 'data23', 'data2', 'data55']
</code></pre>
<p><a href="https://ideone.com/ExCI77" rel="nofollow noreferrer">Python demo</a></p>