PHP,正则表达式问题与非拉丁字符

时间:2014-09-01 07:09:51

标签: php regex preg-replace non-latin

在一个字符串中,我试图用preg_replace删除括号内的所有内容,但我对非拉丁字符有一些问题。 我试过了:

$text = '(Hàng Refurbished) sdfsdfsdfsd (Đen)';
$text = preg_replace('#\([A-Z0-9p{L}]+\)#i', '', $text);
$text = preg_replace('# $#','', $text);
echo $text;

但它无效

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

使用u修饰符,在字符类中添加空格,unicode属性为\p{L}

$text = preg_replace('#\([A-Z0-9\p{L} ]+\)#ui', '', $text);
//                            __^  __^   __^

答案 1 :(得分:0)

\(.*?\)

使用此选项删除所有。

参见演示。

http://regex101.com/r/rX0dM7/5