【发布时间】:2019-06-02 14:07:55
【问题描述】:
想象一下:
$string = "abcdabcdabcdabcdabcdabcdabcdabcd";
如何删除字符串中重复的字符序列(所有字符,而不仅仅是字母),以便新字符串只有“abcd”?也许运行一个函数,该函数返回一个删除重复的新字符串。
$new_string = remove_repetitions($string);
删除重复之前的可能字符串始终如上。我不知道该怎么解释,因为英语不是我的第一语言。其他例子是,
$string = “EqhabEqhabEqhabEqhabEqhab”;
$string = “o=98guo=98guo=98gu”;
请注意,我希望它也可以与其他字符序列一起使用。我尝试使用正则表达式,但我想不出一种方法来完成它。我还是 php 和 Regex 的新手。
【问题讨论】:
-
您需要提供更多案例来清除上下文。
bcdaabcdjdfgabcd的输出应该是什么? -
这绝对是可能的,但它是一个多阶段的正则表达式,这意味着您需要制定一些方法来确定字符串何时重复。如果它不重复你什么都不做如果它重复你需要捕获子字符串。获得子字符串后,您可以将整个字符串划分为捕获组并删除除第一个之外的所有字符串。另一个问题是您会将多少个字符视为子字符串。 4 或 20。你认为重复的字符串有多长将决定这将是多么困难。这绝对不是初学者的任务。
标签: php regex regex-group regex-greedy backreference