Javascript 如何使用PHP查找字符串中的第一个重复字符
我有一个给定的数组inputString:“fabcdeabfa”,当我执行代码时,输出是未定义的:Javascript 如何使用PHP查找字符串中的第一个重复字符,javascript,php,string,Javascript,Php,String,我有一个给定的数组inputString:“fabcdeabfa”,当我执行代码时,输出是未定义的: 函数findFirstRepeated($inputString) { $h=数组(); $i=“”; 对于($i=0;$i
函数findFirstRepeated($inputString)
{
$h=数组();
$i=“”;
对于($i=0;$i echo findFirstRepeated($inputString)
搜索重复子字符串的更有效方法是使用带有preg\u match
的正则表达式:
$str="fabcdeabfa";
for ($l=0;preg_match ("/(.{".$l."}).*?\\1/", $str , $matches);$l++) $res=$matches[1];
echo "$res"; // fa
在此for
循环中,我搜索固定长度的重复子字符串$l
,从$l=0
开始。只有当我得到匹配时,我才提取第一个匹配的子组(matches[1]
)作为结果。只要preg_match()
返回一个“falsy”值,那么for
循环就会停止。E当所需的重复长度变得太大时
请参阅此处的演示:PHP在哪里,CHUI是什么?据我所知,您以前曾问过这个问题。请注意,您推送的数组是$inputString[$i],每次$i增加一个,它将生成一个字符(例如“a”“b”),而不是一个字符串(例如“ab”)。实际上,对于您的代码,结果将是“a”,如果在同一个第一个索引中有许多重复的子字符串,如“FabcDiabFa”的“a”和“ab”,则返回最长的一个“ab”。根据上述定义的要求,示例“FabcDiabFa”的正确结果应为“fa”,因为该字符串出现在“ab”之前。