我想从任何短语中单独提取每个单词。我还需要匹配特殊字符,例如变音符号。
目前,我使用它:
preg_match_all('/\b([a-zA-ZäöüåÄÖÜÅ]*)\b/', $string, $matches);
但是,这给了我多余和空的匹配。例如,“zuspät”返回
Array ( [0] => Array ( [0] => zu [1] => [2] => spät [3] => )
[1] => Array ( [0] => zu [1] => [2] => spät [3] => ) )
匹配“任何字母”的正确表达是什么?我怎么办关于双击和空比赛?
答案 0 :(得分:2)
你可以试试这个:
preg_match_all('/\b\p{L}+\b/u', $string, $matches);
\p{L}
匹配任何字母。
在您的代码示例中,您获得“double in”结果:第一个是整个模式,第二个是捕获组。这就是我删除捕获组的原因。
为了避免空结果,我已将*
量词(零次或多次)替换为+
量词(一次或多次)。