正则表达式 - 单引号或双引号 -C#
Regex - Single quotes OR Double quotes -C#
如何更改:
Regex.Match(value, @"href=\""(.*?)\""",RegexOptions.Singleline);
所以它会select href='foobar'(单引号')以及selecting href="foobar"(双引号")??
您可以使用这样的模式:
href=(["'])(.*?)
这将匹配包含 href=
后跟 "
或 '
后跟任意数量的字符(非贪婪地)后跟相同字符的任何字符串先前在组 1 中匹配。请注意 </code> 是 <a href="https://msdn.microsoft.com/en-us/library/thwdfzxy(v=vs.110).aspx" rel="nofollow">backreference</a>.</p>
<p>另请注意,这也意味着您的属性内容将在第 2 组而不是第 1 组中捕获。</p>
<p>现在,转义 <a href="https://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx" rel="nofollow">string literal</a> 的正确方法是这样(使用常规字符串):</p>
<pre><code>Regex.Match(value, "href=([\"'])(.*?)\1", RegexOptions.Singleline);
或者像这样(使用逐字字符串):
Regex.Match(value, @"href=([""'])(.*?)", RegexOptions.Singleline);
如何更改:
Regex.Match(value, @"href=\""(.*?)\""",RegexOptions.Singleline);
所以它会select href='foobar'(单引号')以及selecting href="foobar"(双引号")??
您可以使用这样的模式:
href=(["'])(.*?)
这将匹配包含 href=
后跟 "
或 '
后跟任意数量的字符(非贪婪地)后跟相同字符的任何字符串先前在组 1 中匹配。请注意 </code> 是 <a href="https://msdn.microsoft.com/en-us/library/thwdfzxy(v=vs.110).aspx" rel="nofollow">backreference</a>.</p>
<p>另请注意,这也意味着您的属性内容将在第 2 组而不是第 1 组中捕获。</p>
<p>现在,转义 <a href="https://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx" rel="nofollow">string literal</a> 的正确方法是这样(使用常规字符串):</p>
<pre><code>Regex.Match(value, "href=([\"'])(.*?)\1", RegexOptions.Singleline);
或者像这样(使用逐字字符串):
Regex.Match(value, @"href=([""'])(.*?)", RegexOptions.Singleline);