正则表达式 - 单引号或双引号-C#

时间:2016-04-18 20:04:55

标签: c# regex double-quotes single-quotes

如何更改:

Regex.Match(value, @"href=\""(.*?)\""",RegexOptions.Singleline);

这样它就会选择href ='foobar'(单引号')以及选择href =“foobar”(双引号“)??

1 个答案:

答案 0 :(得分:2)

你可以使用这样的模式:

href=(["'])(.*?)\1

这将匹配包含href=后跟"'后跟任意数量字符(非贪婪)的任意字符串,后跟与之前匹配的相同字符在第1组中。请注意\1backreference

另请注意,这也意味着您的属性内容将在第2组而不是第1组中捕获。

现在,转义此string literal的正确方法是这样(使用常规字符串):

Regex.Match(value, "href=([\"'])(.*?)\\1", RegexOptions.Singleline);

或者像这样(使用逐字字符串):

Regex.Match(value, @"href=([""'])(.*?)\1", RegexOptions.Singleline);
相关问题