0

メタ ディスクリプション タグの正規表現コードを探しています。

#<meta|name="description|".*content|="([^"]+)"># <- 

それは私が持っているものですが、一部のタグが のようなものであることを発見したため、大文字と一致しませんMETA DESCRIPTION =

大文字の内容に一致するようにこれを変更する新しいコードまたは方法はありますか?

4

5 に答える 5

1

あなたの正規表現<meta|name="description|".*content|="([^"]+)">は壊れています、それは意味します:

  • <meta
    また
  • name="description
    また
  • "続いてcontent
    ORが続く
  • ="後に続かない少なくとも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">
于 2012-09-23T12:17:43.753 に答える
1

次のように使用できます。

/<meta[^>]*name=[\"|\']description[\"|\'][^>]*content=[\"]([^\"]*)[\"][^>]*>/i

圧縮されたhtmlコードでも機能します。

于 2013-09-23T06:37:15.157 に答える
1

i最後の の後にフラグを追加します#

このような:

#<meta|name="description|".*content|="([^"]+)">#i

これにより、正規表現で大文字と小文字が区別されなくなります。フラグの詳細については、こちらをご覧ください。

于 2012-09-23T08:55:48.523 に答える
1

このphp関数をチェックして、説明を含むすべてのメタ詳細を簡単に取得してください。

于 2015-03-07T11:02:21.080 に答える