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.';
提前致谢
答案 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
我没有尝试过,但我认为它对您的需求很有帮助。