替换所有类型的破折号

时间:2013-08-14 14:30:57

标签: php str-replace

我有一个excel文档,我使用库在MySQL中导入。

但是文档中的一些文本包含破折号,我虽然已经替换了,但显然不是全部。 --< - 所有这些都不同。

有什么方法可以用这个-

替换所有类型的傻瓜

主要问题是我不知道计算机中存在的所有破折号。

2 个答案:

答案 0 :(得分:4)

只需使用带有unicode修饰符u的正则表达式和一个字符类:

$output = preg_replace('#\p{Pd}#u', '-', $input);

From the manualPd Dash punctuation

Online demo

答案 1 :(得分:1)

怎么样:

$string = str_replace(array('-','–','-','—', ...), '-', $string);

使用上面的代码,看看它是否有效。如果你仍然看到一些破折号没有被替换,你可以将它们添加到数组中,它会起作用。