preg_match の問題

WBOY
WBOYオリジナル
2016-06-23 14:06:401241ブラウズ

テーブル文字列に「rpt_」、「ods_」、「dw_」があるかどうかを確認したいのですが、ある場合は、一致した文字列をインターセプトして、それを配列に入れます。
$table= "s_dw_xxdf_aw_aaas ";
preg_match('/rpt_|ods_|dw_|/i', $table, $arr);
print_r($arr);
しかし、なぜ配列が出力されるのですか
(
[0] => ; w_/i ', $table , $arr);
print_r($arr);//Array ( [0] => Array ( [0] => ods_ [1] => dw_ [2] => rpt_ ) )

preg_match 正規表現のマッチングを実行し、一度だけ一致し、1 を返し、それ以外の場合は 0 を返します。 形式: preg_match("正規表現", "一致した文字列", 結果を保存する変数名, PREG_OFFSET_CAPTURE, 開始オフセット)
その中には: PREG_OFFSET_CAPTURE は、一致するインデックス位置を取得することを意味します

開始オフセット: 指定された位置から一致を開始します

preg_match_all -- グローバル正規表現一致を実行し、一致の合計数を返します。最後まで一致することを除いて、上記と同じです。

配列が定義されていません


//正则表达式中没有最后的 | ,楼主的正则表达式匹配的是一个空字符串preg_match('/rpt_|ods_|dw_/i', $table, $arr);var_dump($arr);//array(1) { [0]=> string(3) "dw_" } 


PHP コード?123//元の投稿者の正規表現は空の文字列 preg_match('/rpt_|ods_|dw_ / i', $table, $arr);var_dump($arr);//array(1) { [0]=> string(3) "dw_" }

確かに、余分な | を追加しましたが、それを削除するだけです


preg_match は正規表現のマッチングを実行し、一度だけマッチングし、1 を返し、それ以外の場合は 0 を返します。
形式: preg_match("正規表現", "一致した文字列", 結果を保存する変数名、PREG_OFFSET_CAPTURE、開始オフセット Shift)
そのうち: PREG_OFFSET_CAPTURE一致するインデックス位置を取得することを意味します
開始オフセット: 指定された位置から一致を開始します

preg_match_all -- ...

はい、ありがとうございます

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