函数只返回字符串中的字母数字字符?

Sco*_*t B 86 php regex

我正在寻找一个PHP函数,它将获取一个输入字符串,并通过删除所有特殊字符只返回字母数字返回它的清理版本.

我需要第二个功能相同,但只返回字母字符AZ.

任何帮助非常感谢.

Mar*_*ers 193

警告:请注意,英语不仅限于AZ.

尝试操作删除除az,AZ和0-9之外的所有内容:

$result = preg_replace("/[^a-zA-Z0-9]+/", "", $s);
Run Code Online (Sandbox Code Playgroud)

如果您对字母数字的定义包括外语和过时脚本中的字母,那么您将需要使用Unicode字符类.

试试这个只留下AZ:

$result = preg_replace("/[^A-Z]+/", "", $s);
Run Code Online (Sandbox Code Playgroud)

警告的原因是像简历这样的单词包含了é与此不匹配的字母.如果要匹配特定的字母列表,请调整正则表达式以包含这些字母.如果要匹配所有字母,请使用注释中提到的相应字符类.

  • 不,字母数字是`[\p{Alphabetic}\p{Numeric}]`。我忘记了 PCRE 字母属性,但你可以用 `[\pL\pM\pN]` 来近似它。 (2认同)