【问题标题】:Replace all characters in string apart from PHP替换字符串中除 PHP 之外的所有字符
【发布时间】:2010-12-12 17:01:40
【问题描述】:

我有一个字符串 Trade Card Catalogue 1988 Edition 我希望删除除 1988 之外的所有内容。

我可以有一个包含所有字母的数组并执行 str_replacetrim,但我想知道这是否是一个更好的解决方案?

$string = 'Trade Card Catalogue 1988 Edition';
$letters = array('a','b','c'....'x','y','z');
$string = str_to_lower($string);
$string = str_replace($letters, '', $string);
$string = trim($string);

提前致谢

【问题讨论】:

  • 你真正想做什么?删除每个字符以便从字符串中过滤一个数字?还是别的什么?

标签: php string trim str-replace


【解决方案1】:

正则表达式?

所以假设你想要数字(而不是第 4 个单词或类似的东西):

$str = preg_replace('#\D#', '', $str);

\D 表示每个不是数字的字符。同[^0-9]

如果可能有更多数字,但您只想获得一个四位数字(一年),这也可以(但如果您有多个四位数字并且您想获得一个特定的数字,显然会失败):

$str = preg_replace('#.*?(\d{4,4}).*#', '\1', $str);

【讨论】:

  • 你可能想把它改成preg_replace
  • {4}{4,4} 的方便简写
【解决方案2】:

您实际上可以将要修剪的整个字符集作为参数传递给trim

$string = trim($string, 'abc...zABC...Z ' /* don't forget the space */);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多