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

Ale*_*ciu 2 .net regex

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

表达是

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

它有什么问题吗?

Jer*_*ine 8

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

(对于它的价值,如果你将继续使用正则表达式,我建议你投资一份RegExBuddy.)


Jam*_*ran 6

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

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