【问题标题】:PHP trim entire wordsPHP修剪整个单词
【发布时间】:2013-09-12 08:26:56
【问题描述】:

如何从 php 字符串中修剪整个单词

就像我不想要 "foo""bar""mouse" 左侧的单词和字符串末尾的 "killed"

所以"fo awesome illed" 会被修剪掉not

但是"foo awesome killed" => " awesome "

"killed awesome foo" 未修剪(杀死从右侧修剪,从左侧休息)

当我使用ltrim($str, "foo");它将修剪来自"foo" - "f""o" 的任何字母

【问题讨论】:

    标签: php string trim


    【解决方案1】:

    使用preg_replace() 将字符串替换为空字符串。

    $str = preg_replace('/^(foo|bar|mouse)|killed$/', '', $str);
    

    转到regular-expressions.info 了解更多关于正则表达式的信息。

    【讨论】:

    • 嗯,真的没有内置功能吗?海事组织的共同“需要”
    • 对我来说似乎不是很常见。什么应用需要这个?
    • trim 通常用于删除空格或分隔符之类的内容,这就是为什么它需要一组字符,而不是确切的字符串。
    • ltrim($str, "abc") 等价于preg_replace('/^[abc]*/, '', $str)rtrim($str, "def") 等价于 preg_replace('/[def]*$/', '', $str)^$ 匹配字符串的开头和结尾,[...] 匹配任何包含的字符,* 匹配任意数量的前面的正则表达式。
    【解决方案2】:

    str_replace($replaceme, $withme, $here) 如果您不需要高级正则表达式功能,则工作得更快(并且更容易)。 如果您知道要查找的确切单词 ($replaceme) 并且想要删除它,您可以在 $withme 参数中使用 ""(空字符串)。

    【讨论】:

      【解决方案3】:

      使用 preg_match 函数并根据您的要求创建自己的模式。

      <?php
      $subject = "abcdef";
      $pattern = '/^foo$killed/';
      preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
      print_r($matches);
      ?>
      

      【讨论】:

      • 不,这个例子在很多层面上都不起作用。您不能在正则表达式的中间使用 $ 并期望匹配一个。此外,您返回一个数组,而不是一个字符串。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 1970-01-01
      • 2011-12-05
      相关资源
      最近更新 更多