0 レビュー
1 回答
regex-PHPの正規表現
これが何をするかは知っていますが、誰かがこの文字列のPHPでの正規表現構文を説明できますか?
if (preg_match("/(?:iPhone|Android.*Mobile)/", $user_agent) > 0) {
ユーザーエージェント文字列でiPhoneまたはAndroidが検出されることはわかっています。これが、私が探しているものです。
? means what - beginning of string?
: means what - characters leading up to the search phrase?
.*Mobile means it will only match iPhone blah blah Mobile or Android blah blah Mobile?
もう1つの質問-一致を示すために「>0」が必要ですか、それとも「if」式を実行できますか?
ありがとうございます。
わからない
0
レビュー
答え :
解決策:
(?: ... )
は非キャプチャグループです.
.
は「ワイルドカード」であり、改行を除くすべての文字に一致します. *
はクォンツですifierおよび0回以上を表します.. *
は、0回以上の任意の文字を意味します{-code- 2}
(?:iPhone |Android . * Mobile)
iPhone
またはのいずれかを意味します(これが
の目的です) {-code -8}
とMobile
、2つの単語の間に任意の数の文字.
この正規表現では、非キャプチャグループは実際には必要なく、次のように記述されたifでも機能します。
if(preg_match( "/ iPhone |Android . {-code- 3} Mobile / "、$ user_agent)> 0){
編集:ああ、 > 0
の部分も必要ないことを忘れてしまいました.preg_match
すでに0または1を返します。これは、 if
.
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。