我有一些印度语编码的数据。我想删除只有一个或两个字符的部分,例如这是两个字符:
ಎನ್
但它们是多字节的
我尝试使用正则表达式匹配这些:
'~\b[^ ]{1,2}\b~u'
但它不起作用。有什么想法吗?
根据所选答案,解决方案是使用mb_ereg函数。这对我有用:
mb_regex_encoding( 'UTF-8' );
setlocale( LC_CTYPE, 'en_US.UTF-8' );
$str = 'ಆರ್ ವೆಂಕಟಲಕ್ಷ್ಮಿ ಎಸ್ ಎನ್ ಎನ್ ಪದ್ಮಾವತಿ ಎನ್';
echo $str . "\n";
echo mb_ereg_replace( '\b[^\s]{2,4}\b', ' @ ', $str );
echo "\n";
结果:
@ ವೆಂಕಟಲಕ್ಷ್ಮಿ @ @ @ ಪದ್ಮಾವತಿ @
这不适用于preg函数。