C# 正则表达式可选匹配

标签 c# .net regex

我有一些页面内容包含以下代码行的多次出现:

<li class="r"><h3><a href="/test-url.htm">test string</a></h3></li>

我正在使用 .NET Regex 查找内容中所有出现的地方,并返回 anchor 标记的 href。

我的问题是有时 <li>在类周围有引号(如上所示),但其他人没有,只有:class=r

我需要匹配带引号和不带引号的匹配项。

我尝试了各种方法,但似乎都没有效果。当有引号时它们都匹配,但不是没有引号。以下是我目前的尝试:

Regex _Regex = new Regex(@"<li class=(?:"")g([^>])*>((?!<h3).)*<h3([^>])*><a\shref=""(?<URL>[^""]*)""([^>])*>((?!</li).)*", RegexOptions.IgnoreCase);

非常感谢任何帮助,

谢谢。

最佳答案

我觉得你想要的格式是

“”?

不是

?:

问号将前面的字符标记为可选。

关于C# 正则表达式可选匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7012070/

相关文章:

c# - Visual Studio 引用不再存在的命名空间

regex - 如何在Solr 4中使用正则表达式进行查询

regex - 如何仅删除数字之间的空格?

c# - 如何从 MS SQL 数据表中检索列默认值

c# - 如何在 C# 中声明不可写数组?

c# - 当代码有错误时,Visual Studio 2012 Ultimate IntelliSense 无法正常工作

c# - Average 和 Sum 不适用于匿名类型?

python - 我如何使用正则表达式 python 提取引号内的值?

c# - 如何用上标的幂格式化科学记数法中的数字

c# - 从 CSV 文件同步数据库