ホームページ >バックエンド開発 >PHPチュートリアル >正規表現の意味を調べる
preg_match('~^(ftp|news|http|https)?://(.*)$~D', $url, $matches)
質問
1. 正規表現の一般的な書き方 '/定期/ '
なぜこのように書かれているのですか?
2. この規則的なルールは何を意味しますか?
~これまでに遭遇したことがありません。区切り文字を意味する / に似ているはずです。
^(ftp|news|http|https)?://(.*)$
^文字列の先頭から一致を開始します
(ftp|news|http|https)? ftp または news または http または https と一致します0 または 1 回含まれます
:// :// と一致します
(.*) 任意の文字に何度でも一致します
$ 文字列の終わり
最後の大文字 D:
D (PCRE_DOLLAR_ENDONLY) この修飾子が設定されている場合, パターン内のドルのメタ文字は、ターゲット文字列の末尾にのみ一致します。
デフォルトのルール文字列区切り文字は / です
ただし、エンボイ文字のエスケープを減らすために他の文字を区切り文字として指定することもできます
D モードはめったに使用されません、自分で理解してください
D (PCRE_DOLLAR_ENDONLY)
If この修飾子を設定すると、ドルパターン内のメタ文字は、ターゲット文字列の末尾にのみ一致します。このオプションを使用しない場合、最後の文字が改行文字の場合、ドル記号はこの文字の前でも一致します (ただし、他の改行文字の前では一致しません)。 m 修飾子が設定されている場合、このオプションは無視されます。 Perl には同等の修飾子はありません。
この通常のルールは、URL リストの分析に使用する必要があります
リストの形式は、おそらく 1 行に 1 つの URL で、改行で終わります
D を使用しない場合、最初に一致する行のみを見つけることができます
デフォルトのルール文字列 区切り文字は / です
ただし、エンボイ文字のエスケープを減らすために他の文字を区切り文字として指定することもできます
D モードはめったに使用されません、自分で理解してください
D (PCRE_DOLLAR_ENDONLY)
この修飾子が設定されている場合、ドルパターン内のメタ文字はターゲット文字列の末尾のみに一致します。このオプションを使用しない場合、最後の文字が改行文字の場合、ドル記号はこの文字の前でも一致します (ただし、他の改行文字の前では一致しません)。 m 修飾子が設定されている場合、このオプションは無視されます。 Perl には同等の修飾子はありません。
デフォルトのルール文字列区切り文字は / です
ただし、エンボイ文字のエスケープを減らすために、他の文字を区切り文字として指定することもできます
Teachable~
http://blog.csdn.net/tigerdsh/article/details/8866456これを読めば理解できるでしょう、詳細な説明
まず第一に、投稿者は preg_match() を理解する必要があります。これは Perl 言語に基づいた関数であり、接頭辞 "preg_" が付いています。ここでは、実際に $url を使用して、~^(ftp|news|http|https)?://(.*)$~D に一致する $matches 内の通常の文字列を置き換えます。
~ は区切り文字で、デフォルトは / です。もちろん、前後を一致させるだけで自分で定義することもできます。
^ は先頭、$ は末尾、| は 0 から 1 回出現し、* は 1 から複数回出現し、n を除く任意の文字に一致します。 D は、[^0-9] に相当する 0 から 9 までの単一の数値とは一致しません。
私のブログを読むことができます: http://blog.csdn.net/wf120355/article/details/8753593