紅穆ノート
レコメンド 言語ノート PHP preg
言語ノート PHP

PHP preg

PHP preg

`preg_match_all` 関数は、グローバルな正規表現マッチングを実行するために使用されます。

preg_match_all() の構文

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )

`search subject` で、与えられた正規表現に一致するすべてのパターンの一致結果を検索し、それらを `flag` で指定された順序で `matches` に出力します。

最初の一致が見つかった後、子配列は最後の一致位置から検索を継続します。

preg_match_all() の引数説明

    $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]是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。

     PREG_OFFSET_CAPTURE: 如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。

     offset: 通常, 查找时从目标字符串的开始位置开始。可选参数offset用于 从目标字符串中指定位置开始搜索(单位是字节)。

preg_match_all() の戻り値

完全一致の回数(0である可能性あり)を返すか、エラーが発生した場合は `FALSE` を返す。

preg_match_all() インスタンス

一致検索 タグの内容:

<?php
$userinfo = "Name: <b>PHP</b> <br> Title: <b>Programming Language</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array);
print_r($pat_array[0]);
?>

実行結果は以下の通りです:

Array
(
    [0] => <b>PHP</b>
    [1] => <b>Programming Language</b>
)

一致するHTMLタグを検索(グレーニー):

<?php
//\\2是一个后向引用的示例. 这会告诉pcre它必须匹配正则表达式中第二个圆括号(这里是([\w]+))
//匹配到的结果. 这里使用两个反斜线是因为这里使用了双引号.
$html = "<b>bold text</b><a href=howdy.html>click me</a>";
 
preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);
 
foreach ($matches as $val) {
    echo "matched: " . $val[0] . "\n";
    echo "part 1: " . $val[1] . "\n";
    echo "part 2: " . $val[2] . "\n";
    echo "part 3: " . $val[3] . "\n";
    echo "part 4: " . $val[4] . "\n\n";
}
?>

実行結果は以下の通りです:

matched: <b>bold text</b>
part 1: <b>
part 2: b
part 3: bold text
part 4: </b>

matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: a
part 3: click me
part 4: </a>
微信赞赏

WeChat

支付宝赞赏

Alipay

✍️ クリエイター: 紅穆

ウェブサイト管理者 · ご覧いただきありがとうございます!さらに多くの魅力的なコンテンツをお楽しみいただけますよう、引き続きご支援をお願いいたします。

著者プロフィール プロフィールを見る →

関連記事

PHPのob関数の記録

PHPのob関数の記録 言語ノート PHP

以下の3つの関数(`ob_get_contents()`、`ob_end_clean()`、`ob_start()`)を用いることで、ローカルファイルのバッファリングやローカルスクリプトコードの実行を実現できます。`ob_start()`を用いて出力されるコードをバッファに保存すると、ページは即座に表示されません。その後、`ob_get_contents()`を呼び出してバッファに保存されたデータを取得します。
👁 153
PHPにおける三項演算子と`if`文の詳細解説

PHPにおける三項演算子と`if`文の詳細解説 言語ノート PHP

三元演算子(? 表示式1 : 表示式2):説明:問号の前に続く部分が条件であり、条件が満たされた場合に表示式1、そうでない場合に表示式2が返されます。本記事では、三元演算子と `if...else...` 文を比較・詳細に解説しており、皆様の参考になれば幸いです。本日、論文のオンライン修正作業中に、以下の文が理解できなかったことに遭遇しました:`$if_summary = $row['IF_SUMMARY'] = ...`
👁 197
PHPにおける型強制変換

PHPにおける型強制変換 言語ノート PHP PHPデータ収集 PHPとMySQL

データ型の確認:1. 指定された式の値および型を確認する場合、`var_dump()` を使用します。2. デバッグ目的で、読みやすい型表現を取得する場合、`gettype()` を使用します。3. 指定された型を確認する場合は、`gettype()` ではなく `is_type()` 関数を使用してください。文字列を数値に変換:文字列が数値として評価される場合、結果は以下のルールに基づいて決定されます…
👁 238
PHPで指定された文字列が文字列に含まれているかどうかを判定するさまざまな方法

PHPで指定された文字列が文字列に含まれているかどうかを判定するさまざまな方法 言語ノート PHP

`str strstr()` 関数は、ある文字列が別の文字列内で最初に出現する位置を検索します。この関数は、一致した位置から始まる文字列の残りの部分を返します。対象の文字列が見つからない場合、`false` を返します。コード例:`< ?php $email = 'user@example.com'; $domain = strstr($email, ...
👁 142
Typechoのindex.phpホームページテンプレート作成に使用する一般的なコード

Typechoのindex.phpホームページテンプレート作成に使用する一般的なコード 言語ノート PHP

テンプレートを作成するのは特に難しいことではありません。HTMLとCSSを適切に記述すれば、テンプレートの組み込みも非常に簡単です。タグの内部構造を理解する必要はなく、単にタグを使用するだけであれば、テンプレートを迅速に作成できます。本記事では、一般的に使用されるタグの使い方について簡単に紹介しており、読者の皆様がテンプレートの世界に smoothly に入っていただけるよう願っています。テンプレートに関する情報については、まずメインファイルから説明します。このファイルを開くと、最初に目に飛び込むのは以下のコメントです:/** * これは Typecho システム用の標準的な設定…
👁 270

おすすめ読書

ウェブサイトの最適化に、音楽プレーヤーを追加します。

ウェブサイトの最適化に、音楽プレーヤーを追加します。 落とし穴のまとめ

このプラグインは、ウェブサイト利用者の体験を向上させるために使用されます。例えば、Baiduの検索ランキング向上に役立ちます。このプラグインをインストールすれば、ウェブサイトの「跳出率」が低下し、自然と検索ランキング向上につながります——これはご存知の通りです。今日は暇だったので、音楽再生用のウェブサイトを見つけました。そこからわずか1本のJSコードを貼り付けるだけで音楽を再生できるのです。非常に便利で、そのウェブサイトで登録してJSコードを取得するだけです。そこでこのプラグインをインストールして試してみましたが、結果は khá でした。ただ、メインのウェブサイトが少し遅いのが問題でした…
👁 156
EmpireCMS:ゲーム「FangKuKuGameNet」用ダウンロード・プロモーション向け適応型双端テンプレート(016)

EmpireCMS:ゲーム「FangKuKuGameNet」用ダウンロード・プロモーション向け適応型双端テンプレート(016) 実用収集 帝国テンプレート

少し費用をかけながら入手しました。このテンプレートはスマートフォン版とPC版の両方で利用可能です。データ量が非常に多かったため、Baidu Cloudに保存していたデータを削除し、ダウンロード後、ユーザー自身でデータを追加する必要があります。また、偽静的URLルールについてですが、ネット上ではこのテンプレートに対応する偽静的URLルールが見つからなかったため、提供されたIIS用ルールをもとに、Nginx用ルールに適応させました。かなり手間をかけました。![イメージ:偽静的URLルール🔒] 隠し内容:コメント後に「rewrite ^([^\.…)」を確認してください。
👁 353
PHPでは、DOM拡張機能を用いてWebページ内の<a>リンクを検出します。

PHPでは、DOM拡張機能を用いてWebページ内の<a>リンクを検出します。 言語ノート PHP PHPデータ収集

ウェブページ内のすべてのリンク(<a>タグ)を抽出するには、PHPのDOM拡張ライブラリを使用してHTML文書を解析し、リンクを抽出することができます。以下に例コードを示します:// 指定されたURLからHTMLページを読み込む $html = file_get_contents('http://www.example.com/'); // DOMオブジェクトを作成する …
👁 169
(PC+WAP)刺繍専用ウェブサイト用PBootCMSテンプレート – 伝統的職人技系ウェブサイト用ソースコードのダウンロード(ID: 0083)

(PC+WAP)刺繍専用ウェブサイト用PBootCMSテンプレート – 伝統的職人技系ウェブサイト用ソースコードのダウンロード(ID: 0083) 実用収集 pbootcmsテンプレート

このPbootCMSテンプレートは、刺繍・刺繍工芸および伝統的手工業業界に最適です。PCおよびWAPプラットフォームでのアクセスに対応しています。クラシカルで洗練されたデザインスタイルにより、刺繍工芸の美しさと文化的価値を効果的に表現できます。本テンプレートは、伝統的手工業企業が製品をオンラインで紹介し、工芸技術を継承するとともに、市場販路を拡大するのに役立ちます。テンプレート表示・インストール手順:ウェブサイトの管理画面:/admin.php|ユーザー名:admin|パスワード:admin|解凍用パスワード:…
👁 61
(適応型スマートフォン向け)レスポンシブ設計のpbootCMSウェブサイトテンプレート – 一般電子機器向けウェブサイト用ソースコードのダウンロード(0251)

(適応型スマートフォン向け)レスポンシブ設計のpbootCMSウェブサイトテンプレート – 一般電子機器向けウェブサイト用ソースコードのダウンロード(0251) 実用収集 pbootcmsテンプレート

本テンプレートは、モバイル端末向けに適応するレスポンシブ対応の電子技術系企業の公式ウェブサイト用PbootCMSテンプレートです。現代的でテクノロジー感のあるデザインを採用しており、一般の電子機器関連企業による製品およびブランドイメージの提示に最適です。電子技術系企業による公式ポータルサイトの構築における、効率的な選択肢となります。テンプレートの表示、インストール手順、およびウェブサイトの管理画面:/admin.php、アカウント:admin、パスワード:admin、展開用パスワード:www.4s5.cn。関連記事:Pbo…
👁 62
(スマートフォン向け適応型)ブルー型養殖機器ウェブサイト用PBootCMSテンプレート(0400)

(スマートフォン向け適応型)ブルー型養殖機器ウェブサイト用PBootCMSテンプレート(0400) 実用収集 pbootcmsテンプレート

スマートフォン向けの適応型ブルー色の畜産設備用ウェブサイトテンプレート「PbootCMS」。専門的で実用的なデザインスタイルを採用しており、畜産設備、自動化畜産システム、および技術ソリューションの紹介に適しています。畜産設備メーカーが自社製品をオンラインで紹介し、畜産場や農業関連顧客を惹きつけるのに有効です。テンプレート表示・インストール手順:ウェブサイトバックエンド:/admin.php|ユーザー名:admin|パスワード:admin|解凍用パスワード:www.4s5.cn(関連情報…)
👁 57