PHP文字列から漢字のみを抽出する方法
2 つの方法: 1. 通常のフィルター文字列で preg_match_all() を使用します。構文は "preg_match_all("/[\x{4e00}-\x{9fff}] /u","$str", $arr);"; 2. preg_replace() を正規表現とともに使用して、文字列内で中国語以外の文字を検索し、空の文字に置き換えます。構文は "preg_replace("/[^\x{4E00}-\x) です。 {9FFF} ] /u",'',$str)"。
このチュートリアルの動作環境: Windows7 システム、PHP バージョン 8.1、DELL G3 コンピューター
php では、次の 2 つが使用できます。関数 文字列の中国語文字のみを抽出する場合
- #preg_replace() function #preg_match_all() function
preg_match_all() 関数を正規表現「/[\x{4e00}」とともに使用します。 -\x {9fff}]/u
" は文字列をフィルタリングして中国語の文字のみを取得できます。 は、一致する中国語文字を 1 つずつ配列に格納します (配列は 3 番目のパラメーターで指定されます)。
<?php header("Content-type:text/html;charset=utf-8"); $str = "欢迎4546来到php这里。zblog,我的?#$%^天呀&())*(&^"; echo $str; preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr); var_dump($arr); ?>
結果の値は、join() 関数を使用して文字列に結合できます。
join('',$arr[0])
手順:
1) preg_match_all() 関数
preg_match_all() 関数は文字列を検索しますpreg_match_all(pattern,subject,matches,flags,offset)
pattern: 定義された正規表現である検索対象のパターン
- subject: 検索する文字列検索対象; matches: オプションのパラメータ (多次元配列)、一致するすべての結果を保存するために使用され、配列の並べ替えは $flags で指定されます; flags: オプションの選択パラメータ、使用できます次のタグと組み合わせて使用します (PREG_PATTERN_ORDER と PREG_SET_ORDER は同時に使用できないことに注意してください): PREG_PATTERN_ORDER: 結果は $matches[0] に並べ替えられ、完全なパターン $matches のすべての一致が保存されます。 [1] サブグループ内の最初のすべての一致を保存するなど。
- PREG_SET_ORDER: 結果は、$matches[0] には最初の一致で得られたすべての一致 (サブグループを含む) が含まれ、$matches[1] には 2 番目の一致で得られたすべての一致 (サブグループを含む) が含まれるように並べ替えられます。等々。 PREG_OFFSET_CAPTURE: このフラグが渡されると、見つかった各一致が、ターゲット文字列に対する相対的なオフセットを増加して返されます。これにより、$matches 内の各一致文字列要素が、0 番目の要素が一致文字列で、最初の要素がサブジェクト内の一致文字列のオフセットになるように変更されることに注意してください。 offset: オプションのパラメータ $offset は、ターゲット文字列内の指定された位置から検索を開始するために使用されます (単位はバイト)。
- preg_match_all() 関数は、パターンの一致数 (おそらく 0) を返すか、エラーが発生した場合は FALSE を返すことができます。
join(separator,array)
- 配列: 必須。文字列に結合される配列。
- 戻り値: 配列要素で構成される文字列を返します。
preg_match_all() 関数を正規表現 "/[^\x" で使用します。 { 4E00}-\x{9FFF}] /u
” 文字列内で中国語以外の文字を検索し、空文字'' に置き換えます。
<?php header("Content-type:text/html;charset=utf-8"); $str= 'php中文网!-=1548'; echo $str."<br>"; $pattern = "/[^\x{4E00}-\x{9FFF}]+/u"; $newstr=preg_replace($pattern,'', $str);preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr); var_dump($newstr); ?>
説明: preg_replace()
preg_replace() 関数は、正規表現の検索と置換を実行でき、強力な文字列です。置換処理関数の場合、この関数の構文形式は次のとおりです。
preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
- $pattern: 検索するパターン (文字列または文字列の配列)
- $replacement: 置換に使用される文字列または文字列の配列。この引数が文字列で $pattern が配列の場合、すべてのパターンがこの文字列で置き換えられます。 $pattern と $replacement が両方とも配列の場合、各 $pattern は $replacement 内の対応する要素で置き換えられます。 $replacement の要素が $pattern よりも少ない場合、余分な $pattern は空の文字列に置き換えられます。
- $subject: 検索および置換される文字列または文字列配列。$subject が配列の場合、検索および置換は $subject の各要素に対して実行され、戻り値も 1 つの配列になります。 。
- $limit: オプションのパラメーター。各 $subject のパターンごとの置換の最大数。デフォルトは -1 (無限) です。
- $count: オプションのパラメーターを指定した場合、完了した置換の数が入力されます。
$subject が配列の場合、preg_replace() 関数は配列を返し、それ以外の場合は文字列を返します。
関数 preg_replace() が一致を見つけた場合は、置換された $subject を返します。そうでない場合は、変更されていない $subject を返します。 preg_replace() 関数の各パラメータ (パラメータ $limit を除く) は配列にすることができます。 $pattern パラメーターと $replacement パラメーターが両方とも配列の場合、関数は配列内に出現する順序でキーを処理します。エラーが発生した場合は NULL が返されます。
パラメータ $replacement には後方参照 \\n または $n を含めることができますが、構文的には後者の方が優先されます。このような各参照は、一致した n 番目のキャプチャ サブグループによってキャプチャされたテキストに置き換えられます。 n は 0 ~ 99 で、\\0 と $0 は完全なパターン マッチング テキストを表します。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHP文字列から漢字のみを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。
