在PHP中,我使用ereg()函数来确定输入正则表达式是否可能生成指定的字符串。我想显示可能由给定的正则表达式生成的所有字符串。我怎么能这样做?
这是我当前的代码,如果它可以由正则表达式$ reg生成,则打印该字符串。我希望通过显示正则表达式可能生成的所有可能字符串来使其更复杂。
<?php
$reg = $_POST['regex'];
if(isset($_POST['calc'])){
if (ereg ("$reg", "kkjjj", $st))
{
for($i = 0; $i < count($st)-1; $i++)
{
echo "$st[$i]";
}
}
else
{
echo "String not valid";
}
}
?>
答案 0 :(得分:1)
答案 1 :(得分:0)
我认为唯一的办法就是暴力破坏它。即。生成每个字符串并查看它是否匹配。
即使您将搜索空间限制为短字符串,这也比听起来更难,因为正则表达式可以包含所有UTF-8字符,这会比键盘上的“常用”字符显着增加排列数。
所以,不是真的,正则表达式并不是真正可以逆转的东西。