ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでの中国語の文字の規則的なマッチング

php_PHP チュートリアルでの中国語の文字の規則的なマッチング

WBOY
WBOYオリジナル
2016-07-13 17:14:461966ブラウズ

PHP で正規表現を使用して文字列内の中国語文字を取得したい場合は、まずページのエンコーディングを知る必要があります。GBK/GB2312 エンコーディング: [x80- xff>]+ または [xa1- xff]+ および UTF-8 エンコード: [x{4e00}-x{9fa5}]+/u。

コードは次のとおりです コードをコピー

echo (mb_eregi("[x80-xff].","中文") ? "有" : "無し") ."汉字";
echo (mb_eregi("^([x80-xff].)+$","中国語") ? "すべての中国語文字" : ""); すべての中国語文字列を決定する関数を見てみましょう

以下では、マッチングの例として PHP を使用しています:

コードは次のとおりです コードをコピー

$str = "PHP を学ぶことは幸せなことです。";
Preg_match_all("/[x80-xff]+/", $str, $match);
//UTF-8 の使用:
//preg_match_all("/[x{4e00}-x{9fa5}]+/u", $str, $match);
Print_r($match);
?>

出力:

配列
(
[0] => 配列
(
[0] = & gt; を学びましょう [1] = & gt; は幸せなことです。
)

)

常用漢字

コードは次のとおりですコードをコピー
$str = "phpでエレギを漢字と一致させる方法";

if (preg_match("/^[".chr(0x80)."-".chr(0xff)."]+$/",$str)) {
echo "これは純粋な中国語の文字列です";
} 他{
echo "これは純粋な中国語の文字列ではありません";
}
preg_match_all($pat,…) と preg_replace($pat,…)…

preg_match_all("/(汉字)+/ism","私は中国人です、あなたが私に何をするか見てみましょう!",$m_a);
各コードの上位ビットと下位ビットの始まりと終わりがわかっていれば、正規表現を自然に 16 ビットで書くことができます。何が難しいでしょうか?ふふ。ただし、php では、x は 16 桁を示すために使用されることに注意してください

この正規表現を使用して、gb2312 という漢字かどうかを判断することもできます

コードは次のとおりですコードをコピー
$str = "小さな男の子";
if(preg_match("/^[xb0-xf7][xa0-xfe]+$/",$str)){
print($str."確かに全部漢字です");
} その他 {
print($str."この実際の TC はすべて漢字ではありません");
}
?>

http://www.bkjia.com/PHPjc/628906.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/628906.html技術記事 PHP で正規表現を使用して文字列内の中国語文字を取得したい場合は、まずページ エンコーディングを知る必要があります。GBK/GB2312 エンコーディング: [x80-x] のように、中国語文字の通常の一致はページ エンコーディングによって若干異なります。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。