2 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
我已經(jīng)在這方面工作了一段時(shí)間。評(píng)論和 Taha Paksu 非常有效的解決方案有助于幫助我思考問題。除了重音字母之外,Taha Paksu 的解決方案完全隔離了單詞。谷歌搜索似乎表明 RegEx 對(duì)非 ascii 字符不太友好。
正是當(dāng)我放棄嘗試做正則表達(dá)式伏都教(任何可以得到我最深切尊重的人)時(shí),我才想到了這個(gè)不太優(yōu)雅的 hack。
$text = "Testing text. Café is spelled true. And pokémon too... ‘bad quotes’. (brackets)... L?wen, B?ren, V?gel und K?fer sind Tiere. That’s what I said.";
$text = str_replace(array('’',"'"), '000AP000', $text);
$text = str_replace("-", '000HY000', $text);
$text = preg_replace("/[^[:alnum:][:space:]]/u", ' ', $text);
$text = str_replace('000AP000', "'", $text);
$text = str_replace('000HY000', "-", $text);
$text = str_replace(array("' ",'- ',' '," '",' -',' '), ' ', $text);
$words = mb_split( ' +', $text );
它使用兩個(gè)統(tǒng)計(jì)上不太可能的字符串作為占位符,清理其余的字符串,將連字符和撇號(hào)放回原處,然后取出任何接觸空格(和多個(gè)空格)的東西。它適用于我能找到的所有東西。
如果可以,我想找到一個(gè)不那么繁瑣的解決方案,但我的正則表達(dá)式技能可能無法勝任這項(xiàng)任務(wù)(即使打開了備忘單)。
- 2 回答
- 0 關(guān)注
- 186 瀏覽
添加回答
舉報(bào)