\w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。 
\. 匹配一个点.就是用任何一个单词字符与点组成的字符串用"_"来替换吧

解决方案 »

  1.   

    这个正则表达式是将所有除了字母数字和下划线的字符全部替换成下划线,
    也可以写做
    $FILE_NAME = preg_replace( "/[^0-9a-zA-Z_\.]/", "_", $FILE_NAME ); 

     abc##)(*DFDF.gif 将变成 abc_____DFDF.gif
     我的电脑124.jpg  将变成  ________124.jpg
     而 abcd_ef.png    则不变
    这样做的原因是因为如果文件名称含有非法字符,在显示的时候可能会造成某些问题。