$input = "žąsis su šešiolika žąsyčių";
preg_match_all("/\b(žąs\S*)/iu", $input, $output_array);
print_r($output_array);
一无所获。我希望它能同时返回“žąsis”和“žąsyčių”。似乎是一个简单的问题,但我找不到一个简单的答案。我应该以某种方式对主题和模式进行编码还是?..
通过意义“一无所有”,我指的是一个空的多维数组
Array ( [0] => Array ( ) [1] => Array ( ) )
答案 0 :(得分:0)
尝试将UTF8序列添加到模式的开头:
$input = "žąsis su šešiolika žąsyčių";
preg_match_all("/(*UTF8)(žąs\S*)/iu", $input, $output_array);
print_r($output_array);
修改强>:
我在PHP 5.2.17和5.3.20上测试了这个...我在使用5.3.20时似乎没有任何问题,但我做获得相同的空输出使用5.2.17。虽然我找不到任何解决其原因的文档,但在删除第一个\b
(字边界)时问题似乎消失了。这里有一个截图,其中包含输出,PHP版本,加载的扩展和源代码(如果这没有帮助,请确保您将文档保存为UTF8而不是Windows喜欢将其保存为):