php - 如何用 PHP 中的 UTF-8 支持替换所有非字母字符

标签 php regex utf-8 preg-replace

我想从字符串中删除所有非字母字符。问题是我不知道字母范围,因为它是 UTF8 字符串。

它可以是 ENGLISH, Հ̶ՅՐՆ, ქართული, УКРАЇНСЬКИЙ, РУССКИЙ

我通常会这样做:

$str = preg_replace('/[^a-zA-Z]/', '', $str);

$str = preg_replace('/[^\w]/u', '', $str);

但他们都清除了外来字符。

有什么想法吗?

最佳答案

使用 Unicode character properties :

$str = preg_replace('/\P{L}+/u', '', $str);

关于php - 如何用 PHP 中的 UTF-8 支持替换所有非字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11989482/

相关文章:

mysql - 从通过匹配 SQL 中的正则表达式生成的列中获取唯一条目

c++ - 将文件中的utf-8字符转换为十六进制

utf-8 - UTF8 感知 printf?

php - 删除最后一个数组值? php

javascript - JSON解析失败

PHP preg_替换括号和方括号内的所有逗号

regex - 显示匹配模式的 vim 缓冲区

R正则表达式: how to extract elements that contains two character in a certain order?