我正在使用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
)
)发布于 2013-02-16 14:24:28
根据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
)
)发布于 2019-01-25 00:03:55
如果你觉得preg_match_all()很乱,你可以看看pattern()
$p = '"[^"]+"|[\p{L}\p{N}*.?\\\'-]+'; // automatic delimiters
$text = "Friedric'h Wöhler";
$result = pattern($p)->match($text)->all();https://stackoverflow.com/questions/14907421
复制相似问题