0

文字列を除外するために preg_match_all を使用しています

preg_match_all で指定した文字列は

$text = "Friedric'h Wöhler"

その後、私は使用します

preg_match_all('/(\"[^"]+\"|[\\p{L}\\p{N}\\*\\-\\.\\?]+)/', $text, $arr, PREG_PATTERN_ORDER);

$arr を印刷したときに得られる結果は

Array
(
    [0] => Array
        (
            [0] => friedric
            [1] => h
            [2] => w
            [3] => ouml
            [4] => hler
        )

    [1] => Array
        (
            [0] => friedric
            [1] => h
            [2] => w
            [3] => ouml
            [4] => hler
        )

)

どういうわけか ö 文字が ouml に置き換えられましたが、これを理解する方法がよくわかりません

次の結果を期待しています

Array
(
    [0] => Array
        (
            [0] => Friedric'h 
            [1] => Wöhler
        )

)
4

2 に答える 2

1

nhahtdh のコメントによると:

$text = "Friedric'h Wöhler";
preg_match_all('/"[^"]+"|[\p{L}\p{N}*.?\\\'-]+/u', $text, $arr, PREG_PATTERN_ORDER);
echo "<pre>";
print_r($arr);
echo "</pre>";

与える

Array
(
    [0] => Array
        (
            [0] => Friedric'h
            [1] => Wöhler
        )

)
于 2013-02-16T06:24:27.723 に答える