簡単な正規表現:
preg_match('/url\s*\:\s*\'([^\']+)/i',$theString,$match);
echo $match[1];//should be the url
使い方:
/url\s*\:\s*
: 一致url
+ [任意の数のスペース] + (:
コロン)+ [任意の数のスペース]
しかし、これは必要ありません。ここで 2 番目の部分が入ります
\'([^\']+)/i
:配列に個別に格納されます。一致するものは次のとおりです。アポストロフィを除く任意の文字 (文字クラスを作成する、つまり、これらの文字を除外します)。したがって、このクラスは、終了/区切りのアポストロフィに到達するまでの任意の文字と一致します。: 文字列に が含まれている可能性がある場合に備えて、大文字と小文字を区別しないフラグである を追加しました。'
()
$matches
[^']+
[]
^
/i
URL:'http://www.foo.bar'
i
それはそれについてです。おそらく、正規表現をよりよく理解するために、
このあたりを嗅ぎ回ることができます
注:パターン文字列は区切り文字として単一引用符を使用するため、単一引用符をエスケープする必要がありました:"/url\s*\:\s*'([^']+)/i"
同様に機能します。天気がわからない場合や、一重引用符または二重引用符を扱うことになる場合は、引用符を別の char クラスに置き換えることができます。
preg_match('/url\s*\:\s*[\'"]([^\'"]+)/i',$string,$match);
明らかに、そのシナリオでは、パターン文字列に使用した区切り文字をエスケープする必要があります...