2013-10-29 40 views
1

我正在寻找一种方式来的preg_replace()的每个字符,除了 “ - ”的preg_replace EXCEPT专用汽车

preg_replace ('#[^.0-9a-z]+#i', '', $string); 

我显然要替换除A-Z0-9“全部字符不好 - “

结果完成:

$字符串= preg_replace函数 - ;(, '',$字符串 '#/ [^]/+#I [^ 0-9A-Z。]')

回答

1
preg_replace('/[^-]/', '', $string); 

将取代一切,但-

[]表示该组项目,^是不是操作员。所以,当你把[^-]你说“给我的一切,是不是在这一套,在这种情况下是-

+0

将是不错的解释为什么,也不要相信你需要'\\'在那里 – Madbreaks

+2

你忘了你的分隔符,没有它们就不会工作 – webbiedave

+0

对不起,我没有做出很好的解释... 我想代替字符除了0-9a-Z和 - 的目的是为网站地图清除网址 – Titus

0

只需添加破折号字符类:

preg_replace ('#[^.0-9a-z-]+#i', '', $string); 
//    here ___^