ホームページ  >  記事  >  バックエンド開発  >  php preg matchの使い方は何ですか?

php preg matchの使い方は何ですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-09-30 09:42:522178ブラウズ

php preg match の使用法は、正規表現の一致を実行することです。構文は [int preg_match (string $pattern, string $subject [, array &$matches [, int $flags.]]]] です。

php preg matchの使い方は何ですか?

preg_match この関数は、正規表現の一致を実行するために使用されます。

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

件名とパターンで指定された正規表現の間の一致を検索します。

パラメータの説明:

$パターン: パターン検索対象、文字列形式

  • $subject: 入力文字列

  • $matches: パラメータの一致が指定されている場合は、検索用に入力されます。結果。$matches[0] には完全なパターンと一致したテキストが含まれ、$matches[1] には最初のキャプチャ サブグループと一致したテキストが含まれます。

  • $flags: フラグは次のフラグ値に設定できます:

    PREG_OFFSET_CAPTURE: このフラグが渡されると、文字列オフセット (ターゲット文字列を基準とした) が、注意: これにより、matches パラメータに入力された配列が変更され、各要素が 0 番目の要素が一致した文字列で、最初の要素がターゲット文字列サブジェクト内の一致した文字列のオフセットとなる文字列になります。
  • offset: 通常、検索は対象文字列の先頭から開始されます。オプションのパラメータ offset を使用して、対象文字列内の未知の点から検索を開始することを指定します (単位はバイト)。

  • 戻り値
  • パターンの一致回数を返します。preg_match ( ) は、最初の一致後に検索を停止します。preg_match_all() とは異なり、最後に到達するまで件名を検索します。エラーが発生した場合、preg_match() は FALSE を返します。

Example

1. テキスト文字列「php」を検索します:

<?php
//模式分隔符后的"i"标记这是一个大小写不敏感的搜索
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "查找到匹配的字符串 php。";
} else {
    echo "未发现匹配的字符串 php。";
}
?>

実行結果は次のとおりです:

查找到匹配的字符串 php。
2. 単語「word」を検索します
<?php
/* 模式中的\b标记一个单词边界,所以只有独立的单词"web"会被匹配,而不会匹配
 * 单词的部分内容比如"webbing" 或 "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
    echo "查找到匹配的字符串。\n";
} else {
    echo "未发现匹配的字符串。\n";
}
 
if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
    echo "查找到匹配的字符串。\n";
} else {
    echo "未发现匹配的字符串。\n";
}
?>

実行結果は次のとおりです:

查找到匹配的字符串。
未发现匹配的字符串。

3. URL 内のドメイン名を取得します

<?php
// 从URL中获取主机名称
preg_match(&#39;@^(?:http://)?([^/]+)@i&#39;,
    "http://www.runoob.com/index.html", $matches);
$host = $matches[1];
 
// 获取主机名称的后面两部分
preg_match(&#39;/[^.]+\.[^.]+$/&#39;, $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

実行結果は次のとおりです:

domain name is: runoob.com

4. を使用します名前付きサブグループ

<?php
 
$str = &#39;foobar: 2008&#39;;
 
preg_match(&#39;/(?P<name>\w+): (?P<digit>\d+)/&#39;, $str, $matches);
 
/* 下面例子在php 5.2.2(pcre 7.0)或更新版本下工作, 然而, 为了后向兼容, 上面的方式是推荐写法. */
// preg_match(&#39;/(?<name>\w+): (?<digit>\d+)/&#39;, $str, $matches);
 
print_r($matches);
 
?>

実行結果は次のとおりです:

Array
(
    [0] => foobar: 2008
    [name] => foobar
    [1] => foobar
    [digit] => 2008
    [2] => 2008
)

プログラミングについてさらに詳しく知りたい場合は、

php training

列に注目してください。

以上がphp preg matchの使い方は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。