2009-04-28 68 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

杰罗米是正确的。您正在使用转义字符串和字符串。正则表达式本身很好...所以我想这就是问题所在。