PHP字符串preg_replace,保留奇怪的字母和数字

时间:2014-02-07 11:13:02

标签: php regex preg-replace

我希望将这些字母和数字保存在字符串中

  • åäö和其他奇怪的信件
  • az和其他普通字母
  • 123和其他数字

我不想要这个

  • ##¤&#!。,_-和其他奇怪的字符

代码

$content = preg_replace("???", "", $string);

2 个答案:

答案 0 :(得分:5)

您可以使用Jonny 5方法来编写字符类中所需的所有字符。您可以使用包含所有拉丁字母的预定义类\p{Latin}(以及重点字母):

$content = preg_replace('~[^\p{Latin}0-9]+~u', '', $string); 

如果你想要“世界上所有字母或数字”:

$content = preg_replace('~\P{Xan}+~u', '', $string); 

答案 1 :(得分:4)

Yay for Unicode character classes

$content = preg_replace("/[^\p{L}\p{N}]+/u", "", $string);
  • \p{L}匹配任何Unicode字母。
  • \p{N}匹配任何Unicode数字。
  • [^\p{L}\p{N}]匹配任何既不是字母也不是数字的字符。