ホームページ  >  記事  >  バックエンド開発  >  preg_match 関連の問題

preg_match 関連の問題

WBOY
WBOYオリジナル
2016-06-13 12:47:58866ブラウズ

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


-----解決策---------
<br />
//正则表达式中没有最后的 <br><font color='#FF8000'>------解决方案--------------------</font><br> ,楼主的正则表达式匹配的是一个空字符串<br />
preg_match('/rpt_<br><font color='#FF8000'>------解决方案--------------------</font><br>ods_<br><font color='#FF8000'>------解决方案--------------------</font><br>dw_/i', $table, $arr);<br />
var_dump($arr);//array(1) { [0]=> string(3) "dw_" } <br />

------解決策----------------------
preg_match は正規表現のマッチングを実行し、一度だけマッチングし、1 を返します。それ以外の場合は 0 を返します。 、
形式: preg_match("正規表現", "一致した文字列", 結果を格納する変数名, PREG_OFFSET_CAPTURE, 開始オフセット)
その内: PREG_OFFSET_CAPTURE は、一致するインデックス位置を取得することを意味します
開始オフセット: 指定された位置から開始する一致
preg_match_all -- グローバル正規表現マッチングを実行し、一致の合計数を返します。最後まで一致することを除いて、上記と同じです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。