【问题标题】:Is there a better way to strip/form this string in PHP?有没有更好的方法在 PHP 中剥离/形成这个字符串?
【发布时间】:2012-09-05 22:14:03
【问题描述】:

我目前正在使用看似极其复杂且不必要的解决方案来形成所需的字符串。

字符串可以有任何标点符号,包括斜线。

例如,这个字符串:

Test Ripple, it\'s a comic book one!

使用我目前的方法:

str_replace(" ", "-", trim(preg_replace('/[^a-z0-9]+/i', ' ', str_replace("'", "", stripslashes($string)))))

返回正确的结果:

Test-Ripple-its-a-comic-book-one

以下是我当前(较差的)解决方案为实现所需输出所做的细分:-

  1. 去掉字符串中的所有斜线
  2. 使用 str_replace 删除所有撇号
  3. 使用 preg_replace 删除任何剩余的标点符号并用空格替换它
  4. 从字符串的开头/结尾剪掉任何可能由标点符号引起的多余空格。
  5. 用“-”替换所有空格

但必须有更好更有效的方法。有人可以帮忙吗?

【问题讨论】:

    标签: php regex


    【解决方案1】:

    就我个人而言,它看起来不错,但我会做一点小改动。

    改变

    preg_replace("/[^a-z0-9]+/i"
    

    到下面

    preg_replace("/[^a-zA-Z0-9\s]/"
    

    【讨论】:

    • 谢谢,我一定会按照你的建议去做。我将把问题留得更久一点,以防有人提出比我的解决方案更巧妙的东西。干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-07
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多