我有一个字符串:的preg_replace - 留在不想要的字符
$string = "Hello World!";
我希望把它变成一个URL友好的标签,我已经开发了一个函数来做到这一点:
function stripJunk($string){
$string = str_replace(" ", "-", $string);
$string = preg_replace("/[^a-zA-Z]\s/", "", $string);
$string = strtolower($string);
return $string;
}
然而,当我跑我$string
通过它上面,我得到如下:
$string = "hello-world!";
似乎有CHARACT即使从我所了解的情况来看,他们也不应该这样做。
应该这样写:
$string = "hello-world";
这是怎么回事? (这应该是容易peasy柠檬squeasy!)
编辑1:我不知道正则表达式是初学者的东西,但无论如何。此外,删除我的字符串中的\ s不会产生所需的结果。
期望的结果是:
- 所有空间被转换为短划线。
- 删除所有不是A-Z或0-9的其余字符。
- 该字符串然后转换为小写。
编辑2+:清理了我的代码只是一点。
你的代码变得毫无意义。所有空格在第一步被替换,因此`str_replace`什么都不做。 – SilentGhost 2009-07-24 18:20:35
我认为编辑这个问题很难,所以原来的问题被删除了。它使以前有用的答案看起来很愚蠢 – 2009-07-24 18:27:07
我与preg_replace有问题。我没有改变我使用的数学陈述。查看修订历史记录 - 我从一开始就使用的匹配语句保持不变。我改变了代码,原因有几个:1)我想专注于我遇到的问题,2)不要关注我有点疲惫,并且做出了一个愚蠢的booboo,并且把事情放在错误顺序上(无论如何都会被纠正)。 – EvilChookie 2009-07-24 18:34:08