包含特殊字符的字符串上的preg_match_all()

时间:2015-01-23 15:18:16

标签: php regex special-characters preg-match-all

我正在尝试在$ data中preg_match准确的单词(在本例中为'gr')。我有以下代码:

$data = "he is grêt";
preg_match_all("/\b(gr)#?\b/i", $data, $output);
print_r($output);

这输出以下内容:

Array
(
[0] => Array
    (
        [0] => gr
    )

[1] => Array
    (
        [0] => gr
    )
)

'gr'它与'grêt'不完全匹配,因此它不应该匹配。我相信这与'ê'字符有关;当它被'e'替换时,代码按预期工作。

Demo code.

1 个答案:

答案 0 :(得分:0)

这就是我的方式:

$data = "he is grêt";
preg_match_all("/\b(gr)(?:\PL|$)/iu", $data, $output);
print_r($output);