ホームページ  >  記事  >  バックエンド開発  >  PHP 正規表現の概要_PHP チュートリアル

PHP 正規表現の概要_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:50:291052ブラウズ

今日は、正規表現の使用法について書かれたチュートリアルを読みました。主に、正規表現による文字の分割、一致、検索、置換、およびいくつかの入門知識と一般的な例について説明していたので、共有するためにまとめました。あなた。

1. 正規表現の概要と機能。

01.正規表現とは何ですか?

正規表現 (英語: Regular Expression、regex または regexp、略称 RE) は、コンピューターサイエンスにおいて、正規表現、正規表現とも訳され、特定の構文規則を説明または一致させるために使用される一連の単語を指します。文字列の文字列。多くのテキスト エディターやその他のツールでは、特定のパターンに一致するテキスト コンテンツを取得したり置換したりするために正規表現がよく使用されます。多くのプログラミング言語は、正規表現を使用した文字列操作をサポートしています。

ルール構文

02. 主な機能: 分割、マッチング、検索、置換。

表現 マッチ

/^s*$/

空行と一致します。

/d{2}-d{5}/

2桁、ハイフン、5桁のID番号を確認してください。

/]*)?>[sS]*/

HTMLタグを照合します。


2.PHP でよく使用される 2 つの通常関数。

preg_match Perl 予測に基づく通常の関数。 (効率を高めるために、開始文字と終了文字をカスタマイズする必要があります。)
ereg POSIX (Uniox、Script) に基づく通常の関数。

3. 正規表現に含まれる要素。

01. アトム (一般的な文字: a-z A-Z 0-9、アトム テーブル、エスケープ文字)。
02. アトミック文字(特殊な機能を持つ文字)。
03. モード修飾子 (システム内の一部の組み込みモジュール、同様の機能)。


4. 正規表現における「アトム」。

01.a-z A-Z _ 0-9 //最も一般的な文字。
02.(abc) (skd) //括弧で囲まれた単位記号。
03.[abcs] [^abd] //貪欲なマッチング、角括弧で囲まれたソーステーブル、アトミックテーブル内の ^ は除外または反対のコンテンツを表します。

04. エスケープ文字 (大文字と小文字を区別)
d には、すべての数字 == [0-9] が含まれます。
D には、すべての数値 == [^0-9] が含まれるわけではありません。

w にはすべての英字 == [a-zA-Z_0-9] が含まれます。
W にはすべての英字と数字が含まれるわけではなく、特殊記号 == [^a-zA-Z_0-9] と一致するために使用されます。
s には、復帰、改行、改ページなどの空白が含まれています == [fnr]。

メタキャラクター

* 前のコンテンツと 0 回、1 回以上一致します
コンテンツの 0 回、1 回以上一致しますが、キャリッジ リターンとライン フィードは含まれません
+ 前のコンテンツを 1 回以上一致させます
?前のコンテンツと 0 回または 1 回一致します
| 選択のマッチングは PHP の | に似ています (この操作は弱い型であるため、前の操作が最も全体的に一致します)
^ 文字列の最初の内容と一致します
$ 文字列の末尾の内容と一致します
b は単語の境界 (スペースまたは特殊文字) と一致します
B は単語の境界を除いてコンテンツと一致します
{m} は M 回繰り返された前のコンテンツと一致します
{m,} は、前のコンテンツの M 回以上の繰り返し回数と一致します
{m,n} は、前のコンテンツの M 回から N 回の繰り返し回数に一致します
( ) 全体の一致をマージしてメモリに入れます。 1 2... を使用して順番に取得できます。

例:

コードは次のとおりですコードをコピー

よく使用される通常のルール

* 1. ^S+[a-z A-Z]$ は空にすることはできず、スペースを含めることはできません。また、英文字のみを使用できます
* 2. S{6,} は 6 桁を超える空にすることはできません
* 3. ^d+$ にはスペースや数字以外を含めることはできません
* 4. (.*)(.jpg|.bmp)$ は jpg と bmp 形式のみです
* 5. ^d{4}-d{1,2}-d{1,2}$ は 2004-10-22 形式のみです
* 6. ^0$ 少なくとも 1 つ選択してください
* 7. ^0{2,}$ 少なくとも 2 つのアイテムを選択してください
* 8. ^[s|S]{20,}$ は 20 文字を超えて空にすることはできません
* 9. ^+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(.| -))+[a-z]{2,6}$mail
* 10. w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*([,;]s*w+([-+.]w+)* @w+([-.]w+)*.w+([-.]w+)*)* 複数のアドレスを入力し、メールアドレスをカンマまたはスペースで区切ってください
* 11. ^(([0-9]+))?[0-9]{7,8}$ 電話番号は 7 桁または 8 桁であるか、市外局番が前に付きます (例: (022) 87341628)
* 12. ^[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(.[a-z A-Z 0-9 _]+)+(,[a-z A-Z 0-9 _]+@[a-z A-Z
0-9 _]+(.[a-z A-Z 0-9 _]+)+)*$
* 文字、数字、アンダースコアのみを使用できます。同時に、メール形式を標準化する必要があります。 * 13 ^w+@w+(.w+)+(,w+@w+(.w+)+)*$上記の式は、より簡潔に次のように書くこともできます。
14 ^w+((-w+)|(.w+))*@w+((.|-)w+)*.w+$ [/size]
漢字に一致する正規表現: [u4e00-u9fa5]


特定の番号を一致させる:

^[1-9]d*$ // 正の整数と一致します

^-[1-9]d*$ //負の整数に一致
^-?[1-9]d*$ //整数と一致
^[1-9]d* |0$ //負でない整数(正の整数 + 0)に一致
^-[1-9]d* |0$ // 正でない整数(負の整数 + 0)に一致
^[1-9]d*.d* |0.d*[1-9]d*$ //正の浮動小数点数と一致します
^-([1-9]d*.d* |0.d*[1-9]d*)$ // 負の浮動小数点数と一致します
^-?([1-9]d*.d* |0.d*[1-9]d* |0?.0+ |0)$ // 浮動小数点数と一致します
^[1-9]d*.d* |0.d*[1-9]d* |0?.0+ |0$ // 負でない浮動小数点数 (正の浮動小数点数 + 0) と一致します
^(-([1-9]d*.d* |0.d*[1-9]d*)) |0?.0+ |0$ //非正の浮動小数点数(負の浮動小数点数)と一致数字 + 0 )

文字a~z(大文字と小文字は区別されません)、数字0~9、マイナス記号またはアンダースコアで構成されます

ユーザー名は数字または文字でのみ開始および終了できます

$mode = "#test#"; //ここでは、マッチングに上記のアトム テーブルを使用できます。
$str = "sdfsstestdf";

if (preg_match($mode, $str, $end)) { //mode 正規モジュール、str 正規内容、end 正規結果、配列として出力。

echo "正常に一致しました" . $end[0];
} その他 {
echo "一致に失敗しました";
}
?>

コードは次のとおりですコードをコピー
^[a-za-z0-9]{1}[a-za-z0-9|-|_]{2-16}[a-za-z0-9]{1}$

ユーザー名は大文字、小文字、またはアンダースコアで始まり、文字で始まり、長さは 6 ~ 20 文字である必要があります

コードは次のとおりですコードをコピー
^[a-za-z][wd_]{5,19}

ユーザー名: 英語の小文字、漢字、数字、アンダースコアを含めます。すべて数字にすることはできません。また、末尾にアンダースコアを付けることはできません。

コードは次のとおりです/^[a-z0-9_u4e00-u9fa5]+[^_]$/gメール
コードをコピー

utf-8 以下

preg_match("/^[a-z0-9_x80-xff]+[^_]$/g",$a);

gbk下:

preg_match("/^[a-z0-9_".chr(0xa1)."-".chr(0xff)."]+[^_]$/",$a)

コードは次のとおりです 関数 is_email($email){

return strlen($email) > 6 && preg_match(“/^[w-.]+@[w-]+(.w+)+$/”, $email);
}
?>

URLアドレス

コードをコピー
コードは次のとおりです コードをコピー

関数オートリンク($foo)
{
$foo = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_/+.~#?&//=]+)', ' /1', $foo); if( strpos($foo, "http") === FALSE ){
$foo = eregi_replace('(www.[-a-zA-Z0-9@:%_/+.~#?&//=]+)', '/1', $foo);
}その他{
$foo = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_/+.~#?&//=]+)' , '/1/2', $foo); }
$foo を返します。 }
?>


http://www.bkjia.com/PHPjc/632636.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632636.html技術記事今日は正規表現の使用法を書いたチュートリアルを見ました。主に正規表現による文字の分割、マッチング、検索、置換について、また、いくつかの入門知識と一般的な例について説明していたので、全体...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。