【问题标题】:How to get all involved letter in a string如何在字符串中获取所有涉及的字母
【发布时间】:2015-09-14 17:30:26
【问题描述】:

在 mysql 中,我可以通过使用 DISTINCT 来消除所有重复行。

但我正在尝试使用 PHP 中的字符串来执行此操作。

假设我有一个像 asbbbdasddbb 这样的字符串。

如何删除所有重复的字母并获得类似asbd的结果?

这是我当前的代码

preg_replace("/(.)\\1+/", "$1", "asbbbdasddbb");

但它返回字符串asbdasdb

【问题讨论】:

  • 这个问题信息有点少。能分享一下你尝试过的,遇到了什么问题吗?
  • 更新问题,感谢推荐

标签: php regex string replace


【解决方案1】:

这样就可以了:

echo join('', array_unique(str_split('asbbbdasddbb')));

【讨论】:

  • 而且它保留了出现的顺序。
【解决方案2】:
(.)(?=.*\1)

试试这个。替换为empty string。查看演示。

https://regex101.com/r/lS1nO8/3

$re = "/(.)(?=.*\\1)/m"; 
$str = "asbbbdasddbb"; 
$subst = ""; 

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

【讨论】:

  • 我也发现了类似的 reg ,但我用字符串 "aaab" 对其进行了测试,它仍然返回相同的字符串 "aaab" ,您介意详细说明一下吗?
  • 对不起,这是我的错误,我有 $1 作为第二个参数
猜你喜欢
  • 2014-07-08
  • 1970-01-01
  • 1970-01-01
  • 2011-02-25
  • 1970-01-01
  • 1970-01-01
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多