获得正则表达式的有效匹配

时间:2014-07-06 18:47:49

标签: php regex

HeJ小鼠,

我正在做一个涉及测验的项目。多项选择和文本输入作为答案。 为了检查文本输入答案,有一个RegEx。例如:

此操作的名称是什么:3 + 5。 可能的答案:加法,加法,加号,加号,求和,求和,+ RegEx:/^((A|a)ddition|(P|p)lus|(S|s)um|\+)$/

到目前为止一切顺利。但是如果有人回答错误,我现在想显示一个有效的答案。我不想在数据库中冗余地保存它。

所以我的问题是:是否有一个php函数为我提供了任何给定RegEx的有效字符串?

赞:echo 'Your answer is wrong, '.valid_pattern($theRegEx).' would have been better.';

提前致谢

1 个答案:

答案 0 :(得分:1)

如果要使用正则表达式生成样本数据,可以在ReverseRegex php项目中查看。

https://github.com/icomefromthenet/ReverseRegex

这里有一个示例表单:

use ReverseRegex\Lexer;
use ReverseRegex\Random\SimpleRandom;
use ReverseRegex\Parser;
use ReverseRegex\Generator\Scope;

# load composer
require "vendor/autoload.php";

$lexer = new  Lexer('[a-z]{10}');
$gen   = new SimpleRandom(10007);
$result = '';

$parser = new Parser($lexer,new Scope(),new Scope());
$parser->parse()->getResult()->generate($result,$gen);

echo $result;

将生成:

jmceohykoa
aclohnotga
jqegzuklcv
ixdbpbgpkl
kcyrxqqfyw
jcxsjrtrqb
kvaczmawlz
itwrowxfxh
auinmymonl
dujyzuhoag
vaygybwkfm

我没有尝试过,但我认为它对您的需求很有帮助。