如何删除字符串中重复的字符序列?

Imagine if:

$string = "abcdabcdabcdabcdabcdabcdabcdabcd";

How do I remove the repeated sequence of characters (all characters, not just alphabets) in the string so that the new string would only have "abcd"? Perhaps running a function that returns a new string with removed repetitions.

$new_string = remove_repetitions($string);

The possible string before removing the repetition is always like above. I don’t know how else to explain since English is not my first language. Other examples are,

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

Note that I want it to work with other sequence of characters as well. I tried using Regex but I couldn't figure out a way to accomplish it. I am still new to php and Regex.

For details : https://algorithms.tutorialhorizon.com/remove-duplicates-from-the-string/

In different programming have a different way to remove the same or duplicate character from a string. Example: In PHP

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

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

Here, if we wish to remove the repeating substrings, I can't think of a way other than knowing what we wish to collect since the patterns seem complicated.

In that case, we could simply use a capturing group and add our desired output in it the remove everything else:

(abcd|Eqhab|guo=98)

I'm guessing it should be simpler way to do this though.

Test

$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;

Demo

You did not tell what exactly to remove. A "sequnece of characters" can be as small as just 1 character.

So this simple regex should work

preg_replace ( '/(.)(?=.*?\1)/g','' 'abcdabcdabcdabcdabcdabcd');