【问题标题】:Strip everything except one word in PHP在 PHP 中删除除一个单词之外的所有内容
【发布时间】:2018-05-07 01:07:31
【问题描述】:

上下搜索,但我找不到任何有用的东西。
我想剥离除you 之外的所有内容。

$words = "you,us,them,our";
$keep = "you,";

这正好相反:

$words = str_replace("$keep", "", $words);

我如何剥离除$keep 之外的所有内容?

【问题讨论】:

  • 您要查找的输出不等于 $keep 吗?
  • 旁注:如果这是动态的,我会添加一个方法来修剪尾随逗号。
  • $words = rtrim($keep,",");

标签: php preg-replace str-replace


【解决方案1】:
str_replace(array('us', 'them', 'our', ','), array('','','',''), $words);

当然,虽然这有点糟糕。但如果你只有一些替代品,这将完成它的工作。当你想更换更多的东西时,它会变得丑陋。您可能想要添加一个模式并将 preg_replace 与 not 运算符一起使用来删除除“你”之外的所有内容。

像这样:

$text = "You,I,He";
$matches = preg_replace("/[^you]/Uims", "", $text);

print_r($matches);

【讨论】:

  • 第二个例子有效,除了它留下了逗号。我如何阅读它们?
  • 这个输出与简单地运行$words = rtrim($keep,",");有什么不同?
  • 我还有一个问题。它与you,me,our 之类的词匹配得很好,但是当我尝试用逗号分隔的两个长代码(63bcd4cf4316b070ec6382f54c59626d,3e90e2c665f8003e1d84f505df625) 时,它未能选择正确的代码。它只是显示了他们两个。知道为什么吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
  • 1970-01-01
  • 2012-12-03
  • 2022-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多