擅长:python、mysql、java
<p>我最初的直觉是,不,这样的库不存在,因为它是不可能的。您不能确定在合理的时间内可以为任意正则表达式找到有效的输入。在</p>
<p>例如,证明一个数是否素数被认为是一个很难解决的数学问题。以下正则表达式匹配长度至少为10000个字符且总长度为质数的任何字符串:</p>
<pre><code>(?!(..+)\1+$).{10000}
</code></pre>
<p>我怀疑是否有任何库能够在合理的时间内找到这个正则表达式的有效输入。这是一个非常简单的例子,有一个简单的解决方案,例如<code>'x' * 10007</code>就可以了。我们可以想出其他更难找到有效输入的正则表达式。在</p>
<p>我认为解决这个问题的唯一方法是将自己限制在所有可能的正则表达式的子集上。在</p>
<hr/>
<p>但是,如果<em>您有一个神奇的库,它可以生成与任意正则表达式匹配的文本,那么您需要做的就是生成一个正则表达式来匹配所有与原始表达式不匹配的字符串。在</p>
<p>幸运的是,这是可能的使用消极展望:</p>
^{pr2}$
<hr/>
<p>如果您愿意将需求更改为只允许有限的正则表达式子集,那么可以使用布尔逻辑对正则表达式求反。例如,<code>^[abcd]d+</code>变成{<cd3>}。然后就可以在合理的时间内找到这个正则表达式的有效输入。在</p>