ホームページ バックエンド開発 PHPチュートリアル 正規表現に関する N 個の関連質問

正規表現に関する N 個の関連質問

Jun 13, 2016 pm 01:48 PM
echo gt lt quot

正規表現に関する N 個の質問
うーん、数日前の投稿で述べたように、私は正規表現を学び始めました
3 ~ 2 日手探りで、今では実際にできる質問がいくつかありますわかりません
私が今持っている本はあまり詳しくありませんが、百度百科で知りました
本題に戻ります
============== ====== =================
===================== ======== ========
質問 1:
お聞きしたいのですが、正規表現では通常、コンテンツをラップするために

/ を使用する必要がありますか? /

もしそうなら、それが修飾子の場合、修飾子は 2 番目の / 記号の後に書く必要がありますか (たとえば、/aAa/i は修飾子として i を使用し、2 番目の / 記号の後に置く必要があります)
これは Baidu Encyclopedia から学びました。次のようになります。

$
は行末記号と一致します。たとえば、正規表現 weasel$ は、文字列「彼はイタチです」
の末尾には一致しますが、文字列「彼らはイタチの群れです。」


には一致しないので、このように書きました。 PHP コードのデバッグでは、
$str2="彼はイタチです";
$pm2='weasel$';

if(preg_match($pm2,$str2))
{
echo 'True
';
}
else
{
echo 'False
';
}

しかし結果はは失敗です
長い間いじくり回した後、最終的に
$pm2='weasel$';

$pm2='/weasel$/';

に変更することに成功しました。 , でも百科事典は失敗しました そんなこと言ってないです…
よく読んでなかったかもです
ここで確認させてください 検索内容は左右の/記号と修飾子で囲まれています。 2 番目の / 記号の後にありますよね? 書き方のルールすらまだわかりません...ましてやマッチングルール


========。 ====================== =========
================ ======================
質問 2:
「メタキャラクター」について言及している百科事典の最初の表では、* 記号の機能4 行目に記載されているように、マッチングに .* を使用することは理解していますが、その後に「たとえば、.* は、それが何であっても に一致します 」と書かれています。

そこで、上記のコードを使用してテストしましたが、
が見つからないことがわかりました~~~ ~~~~~~~~~~~~~~~~~~~
$str1=<<
test;

$pm1='/.*/';

if(preg_match($pm1,$str1))
{
echo '1. 見つかりました< ;br/>';
}
else
{
echo ' 1. 見つかりません
;
}



~~~~~~~~~~~~~~~~~~~~~
ここでは、とあります。* には / が含まれていますが、/ が式の終端記号と間違われる可能性があることに気づき、/ に変更しましたが、それも機能しませんでした。私は実際にその説明を次のように理解しました: ここの内容は < ;T>* この式は一致しますが、この式の書き方がわかりません

================== ===================
======== ==================== =========
質問 3:
実際にはエスケープ文字として理解しますが、 C言語やPHPと同じで、nは改行文字、
tはタブ文字、\は/、$は転送されます。 $ か何かです


============== =======================
======================== ==============
質問 4:
次のコードは、百科事典の文字テーブルの 7 行目に基づいています。たとえば、正規表現 は、文字列「for the wise」

$str1=< 内の文字「the」と一致します。 ;
賢明な
テストのための

$pm1='/ /';
if(preg_match($pm1,$str1))
{
echo '1. 見つかりません
';
}
else
{
echo '1. 見つかりません
';
}

見つからない理由は、メタキャラクター "" をその後に追加したためです。すべてのソフトウェアがサポートしているわけではありません。

=============== ======================= =
====================== ===============
質問5:
?番号の導入について、百度では全く理解できなかったので他の資料を探しました
。app?path の ? 番号の前にあるアプリはパスの前に 1 回出現すれば一致することは理解していますが、

$str1 のような文字の設定は理解できません。 =<<abcdefg
test;

$pm1='/df?e/';
if (preg_match($pm1,$str1))
{
echo '1. 見つかりません
';
}
else
{
echo '1 が見つかりません
';
}

でも一致します! df は e の後にあります。これでは無駄に学習したような気がします。ルールはまだです!




-----解決策------------- -------
半分読みました。

/ は、定期的な状態が開始されたことを通知します。2 番目の / は、定期的な状態が終了したことを通知します。実際、これは単なる組み合わせです。## や他の文字を使用して、いわゆる始まりと終わりを置き換えることもできます。

ここで、/xxxxa/xxxxb/の場合、正規表現はxxxxaに到達すると終了するとみなしてしまい、後ほどエラーが発生しますので、この時点で単なる文字であることを明確にするためにエスケープする必要があります。終わりではなく真ん中。 これが、escape

$str1=<<
test;

$pm1='//';

ここでの一致条件は、 で始まり で終わる任意の文字です。 もちろん、str1 は
で終わりません。合わないよ。
残りは読んでいないので、他の人に教えてください(笑)
------解決策------------------
質問 1:
/これが実際の正規表現です/
正規表現は途中で // で囲む必要があります。修飾子がある場合は、最後の /
の後に追加します。例: preg_match( '/aaa $/is') ここでの is は修飾子です。それぞれの意味については、
を確認する必要があります。もちろん、// に含まれる正規表現にも / が含まれている場合は注意が必要です。
ここでの正規表現は // でラップされているか、または #@ でラップできることにも注意してください。

質問 2:
もちろんです。探しています。探しているのは とその間のコンテンツです。これは明らかに条件を満たしていません。要件が見つからないのは正常です。RP に問題があることがわかりました。

質問 3:
質問 1 で述べたように、正規表現をラップするために / も使用する場合は、当然エスケープする必要があり、$^? like はすべて特殊文字です。特殊文字を直接一致させたい場合は、もちろんエスケープする必要があります。そうしないと、コンピュータはそれらを特殊文字として扱います。 例:
内容: aaabbb$ccc
bb$cc が
1 に準拠しているかどうかを照合したい場合: /bb$cc/ これにはもちろん問題がありますが、文字通りの意味は上記と一致していますが、コンピューターは $ を最終的な意味として認識します
2。 : /bb$cc / これは正しいです

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

テクノロジーの世界を探索できる、厳選された 5 つの Go 言語オープンソース プロジェクト テクノロジーの世界を探索できる、厳選された 5 つの Go 言語オープンソース プロジェクト Jan 30, 2024 am 09:08 AM

今日の急速な技術発展の時代では、雨後の筍のようにプログラミング言語が出現しています。多くの注目を集めている言語の 1 つは Go 言語です。Go 言語は、そのシンプルさ、効率性、同時実行の安全性などの機能により多くの開発者に愛されています。 Go 言語は、多くの優れたオープンソース プロジェクトがある強力なエコシステムで知られています。この記事では、厳選された 5 つの Go 言語オープンソース プロジェクトを紹介し、読者を Go 言語オープンソース プロジェクトの世界へ導きます。 KubernetesKubernetes は、自動化されたオープンソースのコンテナ オーケストレーション エンジンです。

Go 言語開発の要点: 5 つの人気のあるフレームワークの推奨事項 Go 言語開発の要点: 5 つの人気のあるフレームワークの推奨事項 Mar 24, 2024 pm 01:15 PM

「Go 言語開発の要点: 5 つの人気フレームワークの推奨事項」 高速で効率的なプログラミング言語として、Go 言語はますます多くの開発者に好まれています。開発効率を向上させ、コード構造を最適化するために、多くの開発者はフレームワークを使用してアプリケーションを迅速に構築することを選択します。 Go 言語の世界には、選択できる優れたフレームワークが数多くあります。この記事では、5 つの人気のある Go 言語フレームワークを紹介し、読者がこれらのフレームワークをよりよく理解して使用できるように、具体的なコード例を示します。 1.GinGin は高速な軽量 Web フレームワークです。

iPhoneでApp Storeに接続できないエラーを修正する方法 iPhoneでApp Storeに接続できないエラーを修正する方法 Jul 29, 2023 am 08:22 AM

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認します。「AppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設定のリセット] > [設定])。 iOS バージョンを更新します。

PHPにおけるechoキーワードの役割と使い方の詳しい説明 PHPにおけるechoキーワードの役割と使い方の詳しい説明 Jun 28, 2023 pm 08:12 PM

PHP における echo キーワードの役割と使用法の詳細な説明 PHP は、Web 開発で広く使用されているサーバーサイド スクリプト言語です。 echo キーワードは、PHP でコンテンツを出力するために使用されるメソッドです。この記事では、echoキーワードの機能と使い方を詳しく紹介します。機能: echo キーワードの主な機能は、コンテンツをブラウザに出力することです。 Web 開発では、フロントエンド ページにデータを動的に表示する必要がありますが、このとき、echo キーワードを使用してデータをページに出力できます。 e

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Laravel 開発: Laravel Echo と Pusher を使用して WebSocket 通信を実装するにはどうすればよいですか? Laravel 開発: Laravel Echo と Pusher を使用して WebSocket 通信を実装するにはどうすればよいですか? Jun 13, 2023 pm 05:01 PM

Laravel は、拡張性と効率性に優れた人気の PHP フレームワークであり、開発者が高品質の Web アプリケーションを迅速に構築できる強力なツールとライブラリを多数提供しています。その中でも、LaravelEcho と Pusher は、WebSocket 通信を簡単に実装できる 2 つの非常に重要なツールであり、この記事では、Laravel アプリケーションでこれら 2 つのツールを使用する方法について詳しく説明します。 WebSocket とは何ですか? Webソケット

See all articles