正規表現でのメタキャラクターとエスケープ

正規表現で特別な意味を持つ文字はメタキャラクターと呼ばれます。一般的に使用されるメタキャラクターは次のとおりです。

\ は通常、文字をエスケープするために使用されます
^ ターゲットの開始位置 (または複数行モードでは行の先頭) をアサートします。
$ ターゲットの終了位置 (または複数行モードでは行の末尾) をアサートします
。改行文字を除く任意の文字に一致します (デフォルト)
[開始文字クラス定義
] 終了文字クラス定義
| オプションの分岐の開始
(サブグループの開始タグ
) サブグループの終了タグ
? 量指定子として、0 または 1 が一致することを示します。量指定子の後に配置して、量指定子の貪欲な性質を変更します。(数量子を検索)
*数量子、0 個以上の一致
+ 数量子、1 個以上の一致
{カスタム数量子開始タグ
} カスタム数量子終了タグ

//下面的\s匹配任意的空白符,包括空格,制表符,换行符。[^\s]代表非空白符。[^\s]+表示一次或多次匹配非空白符。
$p = '/^我[^\s]+(苹果|香蕉)$/';
$str = "我喜欢吃苹果";
if (preg_match($p, $str)) {
    echo '匹配成功';
}

メタキャラクターには 2 つの使用シナリオがあります。1 つはどこでも使用できること、もう 1 つは角括弧内でのみ使用できることです。角括弧内で使用されるものは次のとおりです。

\ エスケープ文字
^ は最初の文字 (角括弧内) として使用される場合のみ、文字クラスの否定を示します
- 文字範囲をマークします

このうち、^ は後括弧の外側にあり、アサーション ターゲットの開始位置を示しますが、角括弧内は文字クラスの否定を表します。角括弧内のマイナス ** 記号は、文字範囲をマークできます。たとえば、0-9 はすべての数字の 0 から 9 までを意味します。

//下面的\w匹配字母或数字或下划线。
$p = '/[\w\.\-]+@[a-z0-9\-]+\.(com|cn)/';
$str = "我的邮箱是[email protected]";
preg_match($p, $str, $match);
echo $match[0];

おすすめ

転載: blog.csdn.net/qq_17355709/article/details/131181650