2013-08-22 122 views
0

我試圖解析字符串,分裂它究竟是不是一個字母或數字處理丹麥特殊字符

$parse_query_arguments = preg_split("/[^a-z0-9]+/i", 'København'); 

,構建一個MySQL查詢。 即使我跳過preg_split並嘗試直接輸入字符串,它會將其分成兩個不同的字符串'K'和'benhavn'。

我該如何處理這些問題?

+0

它如何「打破」? – RandomSeed

+0

使用不同的字符集...像'utf-8' ... [UTF-8一路貫穿](http://stackoverflow.com/questions/279170/utf-8-all-the-way-通過) – naththedeveloper

回答

1

這可能有助於解釋你的正則表達式正在發生什麼...... Regex and Unicode

在本question

+0

我有點迷失在這裏,我應該如何使用它?在替換功能? –

2

解釋的。如果你使用像a-z文字字符,那麼它不會匹配重音的人你可以嘗試像\p{L}。您可能需要使用各種可用的character classes做更通用的匹配:

/[[:alpha:][:digit]]/ 

[:alpha:]集是在範圍上比a-z廣泛得多。記住字符匹配是基於字符代碼完成的,並且a-z以字面順序依據索引採用az之間的字符。字符如ø位於此範圍之外,即使它們位於字母順序之間。

計算機以ASCII-abetical(UNICODEical?)順序工作。