我有这个正则表达式从HTML文档中提取元标记,但是当我将它合并到我的Web应用程序中时,它会给我带来错误。
表达式是
@"<meta[\\s]+[^>]*?name[\\s]?=[\\s\"\']+(.*?)[\\s\"\']+content[\\s]?=[\\s\"\']+(.*?)[\"\']+.*?>" ;
它有什么问题吗?
答案 0 :(得分:8)
您正在使用@(逐字字符串)语法并在您发布的示例中转义斜杠。你需要删除@,或删除额外的斜杠并通过加倍来引用双引号,然后它应该可以工作。
(对于它的价值,如果您要持续使用正则表达式,我建议您投资RegExBuddy的副本。)
答案 1 :(得分:5)
当使用字符串文字(@“”)时,你不需要加倍反斜杠 - 字符串中的所有内容都被接受 - 除了双引号,需要加倍:
@"<meta[\s]+[^>]*?name[\s]?=[\s""']+(.*?)[\s""']+content[\s]?=[\s""']+(.*?)[""']+.*?>"
答案 2 :(得分:0)
Jeromy是对的。您正在使用转义字符串和字符串文字。正则表达式本身很好......所以我猜这就是问题所在。