用于提取元标记的c#正则表达式的问题

时间:2009-04-28 17:31:49

标签: .net regex

我有这个正则表达式从HTML文档中提取元标记,但是当我将它合并到我的Web应用程序中时,它会给我带来错误。

表达式是

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

它有什么问题吗?

3 个答案:

答案 0 :(得分:8)

您正在使用@(逐字字符串)语法并在您发布的示例中转义斜杠。你需要删除@,或删除额外的斜杠并通过加倍来引用双引号,然后它应该可以工作。

(对于它的价值,如果您要持续使用正则表达式,我建议您投资RegExBuddy的副本。)

答案 1 :(得分:5)

当使用字符串文字(@“”)时,你不需要加倍反斜杠 - 字符串中的所有内容都被接受 - 除了双引号,需要加倍:

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

答案 2 :(得分:0)

Jeromy是对的。您正在使用转义字符串和字符串文字。正则表达式本身很好......所以我猜这就是问题所在。