2009-04-28 71 views
2

我有這個正則表達式從HTML文檔中提取元標記,但它將給我錯誤,而我將它合併到我的web應用程序中。提取元標記的c#正則表達式的問題

表達是

@"<meta[\\s]+[^>]*?name[\\s]?=[\\s\"\']+(.*?)[\\s\"\']+content[\\s]?=[\\s\"\']+(.*?)[\"\']+.*?>" ; 

這有什麼錯呢?

+0

正則表達式看起來有效。如果你發佈了一些拋出錯誤的示例代碼,這將有所幫助。 – 2009-04-28 17:36:07

+0

如果你真的說出正則表達式給你的錯誤會很好。也許是一個更大的代碼示例,錯誤發生在線上。 – pyrocumulus 2009-04-28 17:36:38

回答

8

您正在使用@(逐字字符串)語法並在您發佈的示例中轉義您的斜槓。你需要刪除@,或刪除額外的斜線,並通過將它們加倍來避免你的雙引號,那麼它應該工作。

(對於它的價值,如果你要與正則表達式正在進行的基礎上開展工作,我建議在RegExBuddy副本的投資。)

5

當使用一個字符串(@「」 )你不需要增加一倍後破折號 - 一切都在字符串中被接受,因爲它是 - 除了雙引號,這需要加倍:

@"<meta[\s]+[^>]*?name[\s]?=[\s""']+(.*?)[\s""']+content[\s]?=[\s""']+(.*?)[""']+.*?>"

0

傑羅米是正確的。您正在使用轉義字符串和字符串。正則表達式本身很好...所以我想這就是問題所在。