0

文字列を解析しようとしていますが、文字または数字ではないもので分割します

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

そしてmysqlクエリを構築します。preg_split をスキップして文字列を直接入力しようとしても、「K」と「benhavn」という 2 つの異なる文字列に分割されます。

これらの問題にどのように対処できますか?

4

2 に答える 2

2

そのようなリテラル文字を使用している場合、a-zアクセント付きの文字とは一致しません。より一般的なマッチングを行うために、利用可能なさまざまな文字クラスを使用したい場合があります。

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

この[:alpha:]セットは よりも範囲がはるかに広いですa-z。文字の照合は文字コードに基づいて行われることを覚えておいてください。a-z文字どおり、文字列azインデックスの間の文字を順番に使用します。のような文字øは、アルファベット順でこの範囲内にあっても、この範囲外にあります。

コンピュータは ASCII-abetic (UNICODEical?) 順で動作します。

于 2013-08-22T14:28:35.913 に答える