メタ ディスクリプション タグの正規表現コードを探しています。
#<meta|name="description|".*content|="([^"]+)"># <-
それは私が持っているものですが、一部のタグが のようなものであることを発見したため、大文字と一致しませんMETA DESCRIPTION =。
大文字の内容に一致するようにこれを変更する新しいコードまたは方法はありますか?
あなたの正規表現<meta|name="description|".*content|="([^"]+)">は壊れています、それは意味します:
<metaname="description"続いてcontent="後に続かない少なくとも1つの文字が"続く">HTMLを正規表現で解析することは非常に悪い考えだと言わせてください。
しかし、トレーニングのために何かを試したい場合は、これを改善し始めてください。
#<meta name="description" content="([^"]+)">#i
これは大文字と小文字を区別せず、あなたが思っていることを実行します。
次のような有効な要素とは一致しないことに注意してください。
<meta name="description" content="foo bar baz">
また
<meta
name="description"
content="foo bar baz">
また
<meta content="foo bar baz" name="description">
次のように使用できます。
/<meta[^>]*name=[\"|\']description[\"|\'][^>]*content=[\"]([^\"]*)[\"][^>]*>/i
圧縮されたhtmlコードでも機能します。
i最後の の後にフラグを追加します#。
このような:
#<meta|name="description|".*content|="([^"]+)">#i
これにより、正規表現で大文字と小文字が区別されなくなります。フラグの詳細については、こちらをご覧ください。
このphp関数をチェックして、説明を含むすべてのメタ詳細を簡単に取得してください。