HTMLドキュメントからメタタグを抽出するこの正規表現はありますが、Webアプリケーションに組み込む間にエラーが発生します。メタタグを抽出するためのC#の正規表現の問題
式は
@"<meta[\\s]+[^>]*?name[\\s]?=[\\s\"\']+(.*?)[\\s\"\']+content[\\s]?=[\\s\"\']+(.*?)[\"\']+.*?>" ;
それに何か問題があるのですか?
HTMLドキュメントからメタタグを抽出するこの正規表現はありますが、Webアプリケーションに組み込む間にエラーが発生します。メタタグを抽出するためのC#の正規表現の問題
式は
@"<meta[\\s]+[^>]*?name[\\s]?=[\\s\"\']+(.*?)[\\s\"\']+content[\\s]?=[\\s\"\']+(.*?)[\"\']+.*?>" ;
それに何か問題があるのですか?
投稿したサンプルで@(逐語的な文字列)の構文とスラッシュをエスケープしています。 @を削除するか、余分なスラッシュを削除して二重引用符をエスケープする必要があります。
(あなたが継続的に正規表現を扱うことになるだろうと、私はRegExBuddyのコピーに投資することをお勧め、何が価値があるため。)
「逐語的な弦」と呼ばれています。 RegexBuddyの利点の1つは、適切な正規表現を作成するのを手伝った後で、C#のverbatim文字列を含め、必要な形式で正規表現をエクスポートできることです。 –
文字列リテラルを使用して(@「」 )あなたは、バックスラッシュを二重にする必要はありません - それはあるとして、文字列のすべてを受け入れている - 二重にする必要がある二重引用符を除い:
@"<meta[\s]+[^>]*?name[\s]?=[\s""']+(.*?)[\s""']+content[\s]?=[\s""']+(.*?)[""']+.*?>"
Jeromyは正しいです。あなたはエスケープされた文字列と文字列litteralを使用しています。正規表現自体は問題ありません...だから、問題はどこにあるのでしょうか。
正規表現が有効です。これは、エラーを投げているサンプルコードを投稿した場合に役立ちます。 –
正規表現があなたに与えているエラーを実際に述べるとよいでしょう。そして、おそらく少し大きいコードサンプル、エラーが発生する行と。 – pyrocumulus
正規表現は無効な入力も解析します(たとえば、