对一个字符串进行特殊符号处理
这个字符串是一个英文词组
例如:site-www.jinanhuashi.icoc.cc-autocad
这个词组有多种形态。现在又几百万条这样的数据。需要按照以下要求进行过滤
要求:
有非英文或数据的,都过滤掉改为空格。特殊符号只保留 “.”  “-”  “'” “_” “%” 这5个 (特例:如果词里完整包含以下的不做过滤处理: c+,c++,c#)
连续多个空格相连的,转化为1个。
所有特殊符号不能作为开头。除(%)外,其他特殊符号不能作为结尾(特例除外)。
除(.)外,其他特殊符号前面不能有空格。除(%及特例词)外,其他特殊符号后面不能有空格。
如果一个词中间只有特殊符号相连的,把所有特殊符号过滤掉。
请问用php的正则表达式和字符串处理函数能否写出一个方法满足以上要求。PHP正则表达式