首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何去除字符串中重复的字符序列?

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

Stack Overflow用户
提问于 2019-06-02 22:07:56
回答 3查看 454关注 0票数 -3

想象一下,如果:

代码语言:javascript
复制
$string = "abcdabcdabcdabcdabcdabcdabcdabcd";

如何删除字符串中重复的字符序列(所有字符,而不仅仅是字母表),以便新字符串只有"abcd"?也许是运行一个函数,返回一个删除了重复项的新字符串。

代码语言:javascript
复制
$new_string = remove_repetitions($string);

删除重复项之前可能的字符串始终类似于上面。我不知道还能怎么解释,因为英语不是我的第一语言。其他的例子有:

代码语言:javascript
复制
$string = “EqhabEqhabEqhabEqhabEqhab”;
$string = “o=98guo=98guo=98gu”;

请注意,我希望它与其他字符序列以及工作。我试着使用正则表达式,但我想不出一种方法来完成它。我仍然是php和Regex的新手。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-02 22:43:09

详情请访问:https://algorithms.tutorialhorizon.com/remove-duplicates-from-the-string/

在不同的编程中,有不同的方法从字符串中删除相同或重复的字符。示例:在PHP中

代码语言:javascript
复制
<?php
$str = "Hello World!";
echo count_chars($str,3);
?> 

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

票数 0
EN

Stack Overflow用户

发布于 2019-06-03 01:32:21

在这里,如果我们想要删除重复的子串,除了知道我们想要收集什么之外,我想不出其他方法,因为模式看起来很复杂。

在这种情况下,我们可以简单地使用一个捕获组,并在其中添加我们想要的输出,并删除其他所有内容:

代码语言:javascript
复制
(abcd|Eqhab|guo=98)

我猜这应该是一种更简单的方式。

测试

代码语言:javascript
复制
$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

票数 0
EN

Stack Overflow用户

发布于 2019-06-03 01:35:39

您并没有确切地说明要删除的内容。“字符序列”可以小到只有1个字符。

所以这个简单的正则表达式应该可以工作

代码语言:javascript
复制
preg_replace ( '/(.)(?=.*?\1)/g','' 'abcdabcdabcdabcdabcdabcd');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56415789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档