ホームページ バックエンド開発 PHPの問題 PHP文字列から漢字のみを抽出する方法

PHP文字列から漢字のみを抽出する方法

Sep 22, 2022 pm 07:44 PM
php 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)"。

PHP文字列から漢字のみを抽出する方法

このチュートリアルの動作環境: Windows7 システム、PHP バージョン 8.1、DELL G3 コンピューター

php では、次の 2 つが使用できます。関数 文字列の中国語文字のみを抽出する場合

  • #preg_replace() function

  • #preg_match_all() function
##方法 1: preg_match_all() 関数を使用します。

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);
?>
ログイン後にコピー

結果の値は、j​​oin() 関数を使用して文字列に結合できます。 PHP文字列から漢字のみを抽出する方法

join(&#39;&#39;,$arr[0])
ログイン後にコピー

PHP文字列から漢字のみを抽出する方法手順:

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 を返すことができます。
2) join() 関数

join() 関数は、配列要素で構成される文字列を返します。

join() 関数は、implode() 関数のエイリアスです。

join(separator,array)
ログイン後にコピー

区切り文字: オプション。配列要素の間に何を配置するかを指定します。デフォルトは「」(空の文字列)です。
  • 配列: 必須。文字列に結合される配列。
  • 戻り値: 配列要素で構成される文字列を返します。

方法 2: preg_replace() 関数を使用します。

preg_match_all() 関数を正規表現 "/[^\x" で使用します。 { 4E00}-\x{9FFF}] /u

” 文字列内で中国語以外の文字を検索し、空文字

'' に置き換えます。

<?php
header("Content-type:text/html;charset=utf-8");
$str= &#39;php中文网!-=1548&#39;;
echo $str."<br>";
$pattern = "/[^\x{4E00}-\x{9FFF}]+/u";
$newstr=preg_replace($pattern,&#39;&#39;, $str);preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr);
var_dump($newstr);
?>
ログイン後にコピー

PHP文字列から漢字のみを抽出する方法説明: 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

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

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

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

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

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

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles