我想把每个单词从任何短语中单独提取出来。我还需要匹配特殊字符,例如变音。
目前,我使用的是:
preg_match_all('/\b([a-zA-ZäöüåÃÃÃà ]*)\b/', $string, $matches);
然而,这给了我多余和空洞的匹配。例如,“zu sp?t”返回
Array ( [0] => Array ( [0] => zu [1] => [2] => spät [3] => ) [1] => Array ( [0] => zu [1] => [2] => spät [3] => ) )
与“任意字母”匹配的正确表达方式是什么?我能对双人和空场比赛做些什么?
你可以试试这个:
preg_match_all('/\b\p{L}+\b/u', $string, $matches);
哪里 \p{L} 匹配任何字母。
\p{L}
在您的代码示例中,您获得了“双重”的结果:第一个是整个模式,第二个是捕获组。这就是我删除捕获组的原因。 为了避免空结果,我已将 * 通过 + 量词(一次或多次)。
*
+