从正则表达式生成随机字符串的PHP组件
我正在搜索从正则表达式生成随机字符串的PHP组件。我搜索了这个论坛,但只找到了PERL等解决方案()。有这样一个开源类吗?我不熟悉,我(直到现在)还不熟悉任何能够实现这一点的php库,转换类似的东西将是一项艰巨的任务 相反,您可以简单地执行以下操作:从正则表达式生成随机字符串的PHP组件,php,regex,Php,Regex,我正在搜索从正则表达式生成随机字符串的PHP组件。我搜索了这个论坛,但只找到了PERL等解决方案()。有这样一个开源类吗?我不熟悉,我(直到现在)还不熟悉任何能够实现这一点的php库,转换类似的东西将是一项艰巨的任务 相反,您可以简单地执行以下操作: function random($length) { $random_string = ""; $valid_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
function random($length)
{
$random_string = "";
$valid_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+-=[]{}\\|";
$num_valid_chars = strlen($valid_chars);
for ($i = 0; $i < $length; $i++)
{
$random_pick = mt_rand(1, $num_valid_chars);
$random_char = $valid_chars[$random_pick-1];
$random_string .= $random_char;
}
return $random_string;
}
echo random(20); //generates a random string, 20 characters long.
函数随机($length)
{
$random_string=“”;
$valid_chars=“abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzo123456789!@$%^&*()_+-=[]{}\\\ |”;
$num\u valid\u chars=strlen($valid\u chars);
对于($i=0;$i<$length;$i++)
{
$random\u pick=mt\u rand(1,$num\u valid\u chars);
$random_char=$valid_chars[$random_pick-1];
$random\u string.=$random\u char;
}
返回$random_字符串;
}
回波随机(20)//生成一个20个字符长的随机字符串。
可以找到名为ReverseRegex的库。截至2014年1月,该项目似乎还没有结束 用法似乎很简单
$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;
给它一个正则表达式,给它一个随机种子并生成您的字符串。上面的示例取自github站点,生成一个10个字符长的随机字符串,该字符串仅由字母组成
(最初在中找到)正则表达式用于匹配已生成的字符串,而不是生成它们。通常,询问库等问题与SO无关;您可以引用找到的PERL解决方案以及如何转换为PHP来改写您的问题。@Jonathan Kuhn:换句话说,我想生成与所选正则表达式匹配的随机字符串。可能与look-Ath重复,它提到了一个PHP字符串。这个答案是:
$validCharacters=range(0,9)//使用range()选择您的字符。
然后$randVal=infrade(“”,array_rand($validCharacters,$length))代码>