【问题标题】:How to preg_replace everything but _-/ [duplicate]如何preg_replace除了_-/ [重复]
【发布时间】:2011-11-10 04:04:44
【问题描述】:

可能重复:
how to replace special characters with the ones they're based on in PHP?

我需要清理包含特殊字符(外语键盘等)的字符串,我需要将它们更改为“ä => a”,同时不删除“_”、“-”和“ /"。

【问题讨论】:

  • 删除special characters 的规则是如何定义的? Unicode 中有数百个字符,上面有各种标记,更不用说非拉丁字母字符了。那些要怎么处理?如果您确实生成了一个详尽的列表,您可能会发现 strtr 命令对此很有用。
  • 您是否尝试过自己解决这个问题?谷歌搜索 regex replace everything except 会产生很多结果。
  • 我正在做类似 '/(à|á|â|ã|ä|å|æ)/' => 'a' 的事情。是的,我试过了,否则不会来这里。 @GabiPurcaru 不是重复的,如您所见,我不仅问如何替换字符,还问了如何替换字符并留下一些字符。
  • @qalny 由于_-/ 不基于任何其他字符,因此不会使用其他问题中的任何方法替换它们。

标签: php


【解决方案1】:
print iconv('UTF-8', 'ASCII//TRANSLIT', 'à|á|â|ã|ä|å|æ');

a|a|a|a|a|a|ae

无需正则表达式。适合工作的正确工具。

【讨论】:

  • 有时对正则表达式问题的最佳答案是根本不使用正则表达式:)
  • +1 以获得简洁的答案(这也恰好是正确的):-)
猜你喜欢
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
相关资源
最近更新 更多