ホームページ  >  記事  >  バックエンド開発  >  PHP の規則性に関する小さな問題

PHP の規則性に関する小さな問題

WBOY
WBOYオリジナル
2016-06-23 13:52:471012ブラウズ

$url = "http://detail.tmall.com/item.htm?id=39583642975&ali_trackid=2:mm_17615479_5728618_19968131,00236231:1406685924_6k5_1303432088&spm= a230z.1.563 4029.1.Ch9V0b";

$preg = "/,([ 0-9]+):/is";
preg_match($preg,$url,$a);
print_r($a);

正規表現を使用するときに ^ $ を使用すると成功しないのはなぜですか。これら 2 つの記号を使用したことがないので、今では少し耐えられないような気がします。たとえば、上記の文は一致しますが、
$preg = "/^,([0-9]+):/is"; は間違いありません。は機能しません
$preg = "/^,([0-9]+):$/is"; これは絶対に機能しません
専門家はその理由を説明できますか?


ディスカッションへの返信 (解決策)

^ 文字列の始まり

$ 文字列の終わり

^ 文字列の始まり

$ 文字列の終わり


あなたはしませんでした言ってください...

あなたは何も言っていません...


文字列はカンマではなく http で始まります、明らかに一致しません、他に何を言うべきですか...
^ 一致 [ input] 文字列 開始位置

$ [input] 文字列の終了位置と一致します

$preg = "/^,([0-9]+):/i";//一致するのは 00236231:1406685924_6k5_1303432088&spm= a230z.1.5634029. 1.Ch9V0b (文字列を例として取り上げます)
$preg = "/^,([0-9]+):$/i";// 00236231: (文字列を例として受け取ります)例)


あなたは何も言っていません...


あなたの文字列はカンマではなく http で始まりますが、これは明らかに一致しません...



意味 ^ を使用する場合、文字列の先頭の文字でなければなりませんか? $これが最後でしょうか?途中からセクションを取りたい場合は使えませんよね?

^ [input] 文字列の開始位置と一致します

$ [input] 文字列の終了位置と一致します

$preg = "/^,([0-9]+):/i";//のみ一致、00236231:1406685924_6k5_1303432088&spm=a230z.1.5634029.1.Ch9V0b (文字列を例として取り上げます)
$preg = "/^,([0-9]+):$/i";// のみ一致可能00236231 : (文字列を例にします)



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