/ u特殊字符的修饰符在正则表达式中不起作用

时间:2016-12-06 16:20:58

标签: php arrays regex binary

我使用´之类的特殊字符进行编码,对于它们我需要/ u修饰符,但它仍无法显示它们。我的代码:

$input = array("⋃","⋃","a","⋃","h");

$input = implode($input);

$input = Normalizer::normalize($input); // unite binary code

$pattern = '/⋃{2}/u';

$replacement = '$0|';

$output = str_split(preg_replace($pattern,$replacement,$input));

1 个答案:

答案 0 :(得分:1)

由于您需要将Unicode字符串标记为Unicode字符,我建议在此处使用preg_函数。

$input = array("⋃","⋃","a","⋃","h");
$impl = implode($input);
$impl = preg_replace('/⋃{2}/u','$0|',$impl);
preg_match_all('~\X~u', $impl, $tokens);
print_r($tokens);

请参阅PHP demo

首先,implode,然后preg_replace|之后添加,然后使用preg_match_all\X模式匹配任何Unicode字形。