如何获得给定字符串中的第一个唯一子字符串。
例如我想在
中找到被询问为“ tr6hrvjh ”的唯一字符串$ string =“htr6hrvjhtr6hrvjhtr6hrvjhtr6hrvjh”;
我尝试 substr_count 并使用 for(),也尝试了嵌套循环。仍然无法使其发挥作用 你有任何方法来检索唯一的字符串吗?还是可以使用正则表达式? 我目前正在使用php。如果你能用其他编程语言来做,请这样做。
- 编辑 -
确定。正是 niftydude 表示重复引用的唯一字符串。对于那个很抱歉。让我重新解释一下这个问题
$ string(h)中的第一个字符用作被搜索的唯一字符串的“限制器”。它表示正在搜索的唯一字符串的结尾。
第二个字符(t)是唯一字符串的开头。这就是为什么我说“tr6hrvjh”
我所做的是从第一个偏移[1]开始,每个字符在$ string中循环,即(t)。循环只会在
时结束'unique'字符串的条件是:
请注意$ string总是这样。第一个和第二个字符总是分别作为“唯一”字符串的最后一个和第一个字符。并且唯一的字符串总是在$ string中重复,其重复之间没有其他字符。
另一个问题是被搜索的字符串中有两个h。我希望你理解它。随意评论:D
- 编辑 -
到目前为止我遇到的测试字符串就像我给你的那些htr6hrvjhtr6hrvjhÔi§¯ŸÍ©¥g§¬Ð™×ªhÖØ¡~|ÓkÕ¬šÕª-©«
htr6hrvjhtr6Ôi§¯ŸÍ©¥g§¬Ð™×ªhÖØ¡~|ÓkÕ¬šÕª-©«
512354651235465Ôi§¯ŸÍ©¥g§¬Ð™×ªhÖØ¡~|ÓkÕ¬šÕª-©«
5123546512354651235Ôi§¯ŸÍ©¥g§¬Ð™×ªhÖØ¡~|ÓkÕ¬šÕª-©«
答案 0 :(得分:1)
可能我仍然没有正确理解你的问题,但试试这个:
function getUniqueString($string) {
$delimiter = $string[0];
$chunks = array_filter(explode($delimiter, $string), function ($chunk) {
return preg_match('/^[0-9a-zA-Z]+$/', $chunk);
});
return implode(array_unique($chunks)) . $delimiter;
}
答案 1 :(得分:0)
http://php.net/manual/en/function.strpos.php
使用strpos()
。给你的字符串和'针',它将返回索引作为字符串中第一个针的实例。如果找不到,则返回FALSE
。
答案 2 :(得分:0)
大海捞针示例中的针:
$pos = strpos($haystack,$needle);
if($pos === false) {
// string needle NOT found in haystack
}
else {
// string needle found in haystack
}
http://www.maxi-pedia.com/string+contains+substring+PHP
另外,关于它的php.net手册: http://php.net/manual/en/function.strpos.php