我正在尝试制作鬼游戏,这是我的php文件,它使用正则表达式来更新我的html文件中的字符串,该字符串列出了可能在字符串后面形成单词的所有字母。 (就像liche一样,它会为可能的字母回显n)另外,我有一个文本文件,其中包含英语词典中的所有单词,我从preg_match_all()中提取数据。但是,我的代码一直没有返回,我不确定原因。
for循环特定于游戏幽灵。游戏规则是每个玩家说出一个字母,目的是形成一个单词。但是,无论谁说出形成这个词的最后一个字母都会赢。例如,如果第1个人说Z,第2个人说E,p1说B,p2说R,那么p1会丢失,因为剩下的唯一可能的字母是A,这将构成一个完整的单词。但是,让我创建for循环的规则是排除长度不超过3个单词的所有单词(a,a,cat等)
如果我输入了字符串loa(由REQUEST检索),那么以loa开头的wordsEn.txt文件中的所有单词都将被添加到数组中。从那里,loa之后的下一个字母将被添加到字符串s1(虽然没有重复的字母; n不应该重复两次贷款和贷款)。最后,这将回显s1,后来将在html中使用。
<?php
$contents=file_get_contents('wordsEn.txt');
$a=$_REQUEST['word'];//gets current combo from the url
$pattern='/^'+$a+'.*/';
$length=strlen($a);
$letters='';
if(preg_match_all($pattern,$contents,$matches)){
for($n=0; $n<count($matches); $n++){
if($length>3 and $matches[$n]==$a){// if it is a word with length over 3
$n=$length+4;
$letters='';//no matches
}
else{
$next=$matches[$n]+'';
$temp=substr($next, $length-1, $length); //get the next letter
if(strpos($letters, $temp)==FALSE){
$temp=substr($next, $length-1, $length);
$letters+=$temp;
}
}
}
echo($letters);
}
&GT;
答案 0 :(得分:1)
答案 1 :(得分:1)
它就像:
一样简单^pa.*
其中:
^ : is an anchor that means begining of string
pa : literally letter "p" followed by letter "a"
.* : any character (.) present 0 or more times (*)
根据问题重新编制进行编辑:
你喜欢的模式是:
$pattern = "/^$a.*/";
或更具限制性:
$pattern = "/^$a\w*/";
我不明白for循环的目的,请解释你想要做什么,并在你的问题中添加一些预期结果的样本输入字符串。