Как удалить повторяющуюся последовательность символов в строке? - PullRequest
0 голосов
/ 02 июня 2019

Представьте себе, если:

$string = "abcdabcdabcdabcdabcdabcdabcdabcd";

Как удалить повторяющуюся последовательность символов (все символы, а не только алфавиты) в строке, чтобы новая строка имела только «abcd»? Возможно, запускается функция, которая возвращает новую строку с удаленными повторениями.

$new_string = remove_repetitions($string);

Возможная строка перед удалением повторения всегда как выше. Я не знаю, как еще объяснить, так как английский не мой родной язык. Другие примеры:

$string = “EqhabEqhabEqhabEqhabEqhab”;
$string = “o=98guo=98guo=98gu”;

Обратите внимание, что я хочу, чтобы он работал и с другой последовательностью символов. Я пытался использовать Regex, но я не мог найти способ сделать это. Я все еще новичок в PHP и Regex.

Ответы [ 3 ]

0 голосов
/ 02 июня 2019

Здесь, если мы хотим удалить повторяющиеся подстроки, я не могу придумать иного пути, кроме как знать, что мы хотим собрать, поскольку шаблоны кажутся сложными.

В этом случае мы могли бы просто использовать группу захвата и добавить в нее желаемый результат и удалить все остальное:

(abcd|Eqhab|guo=98)

Полагаю, это должен быть более простой способ сделать это.

Тест

$re = '/.+?(abcd|Eqhab|guo=98)\1.+/m';
$str = 'abcdabcdabcdabcdabcdabcdabcdabcd
EqhabEqhabEqhabEqhabEqhab
o98guo=98guo=98guo=98guo=98guo=98guo=98guo98';
$subst = '$1';

$result = preg_replace($re, $subst, $str);

echo $result;

Демо

0 голосов
/ 02 июня 2019

Вы не сказали, что именно удалить.«Последовательность символов» может быть всего 1 символом.

Так что это простое регулярное выражение должно работать

preg_replace ( '/(.)(?=.*?\1)/g','' 'abcdabcdabcdabcdabcdabcd');
0 голосов
/ 02 июня 2019

Подробнее: https://algorithms.tutorialhorizon.com/remove-duplicates-from-the-string/

В разных программах есть разные способы удаления одного и того же или повторяющегося символа из строки. Пример: в PHP

<?php
$str = "Hello World!";
echo count_chars($str,3);
?> 

OutPut:! HWdelor https://www.w3schools.com/php/func_string_count_chars.asp

...