擅长:python、mysql、java
<p>你不需要正则表达式;没有正则表达式可读性更好。你知道吗</p>
<pre><code>valid = ("D" in s) and ("E" in s)
</code></pre>
<p>如果您还需要验证长度,只需在检查字母之前保持<code>len(s) == 3</code>。你知道吗</p>
<p>如果需要使用regex,<a href="https://stackoverflow.com/a/24656216/833881">this answer</a>似乎已经涵盖了细节。你知道吗</p>
<pre><code>import re
DE = re.compile(r"(?=.*D)(?=.*E)")
all(map(DE.match, ("DEA", "ESD", "DZE", "PDE")))
# True
all(map(DE.match, ("DEA", "ESD", "DZE", "PDE", "QQQ")))
# False
</code></pre>
<p><em>Edit:请注意,这假设字符串中必须同时存在D和E,这与提供的示例相匹配,但不是真正的问题语句,前提是问题语句并不完全准确。</em></p>