Regex 正则表达式,分组而不获取匹配项

Regex 正则表达式,分组而不获取匹配项,regex,html-parsing,Regex,Html Parsing,regexp如下所示: /<span[^>]*class=\"link[^>]*params=\"(\d+),(\d+),[^>]*>[^<]*from.*?(\d{1,2})(.*?)(\d{4}).*?(year|Year)[^<]*<\/span>/ /]*class=\“link[^>]*params=\”(\d+),(\d+),[^>]*>[^如果想要非捕获组,请尝试以下操作: (\d{1,2})(?:\s)(.?)(\d{4})

regexp如下所示:

/<span[^>]*class=\"link[^>]*params=\"(\d+),(\d+),[^>]*>[^<]*from.*?(\d{1,2})(.*?)(\d{4}).*?(year|Year)[^<]*<\/span>/

/]*class=\“link[^>]*params=\”(\d+),(\d+),[^>]*>[^如果想要非捕获组,请尝试以下操作:

(\d{1,2})(?:\s)(.?)(\d{4})。*?(年)

详见Kobi对OP的评论


注意非捕获组。并非所有regex风格都支持非捕获组。如果您依赖组反向引用索引,突然决定将组更改为非捕获组,它们可能会打乱您的后处理代码。我的建议是在.Net中始终使用命名组。

如果您想要非捕获组,请尝试以下操作:

(\d{1,2})(?:\s)(.?)(\d{4})。*?(年)

详见Kobi对OP的评论


注意非捕获组。并非所有regex风格都支持它们,如果您依赖组反向引用索引并突然决定将组更改为非捕获组,它们可能会打乱您的后处理代码。我的建议是始终在.Net中使用命名组。

嗯……我认为您应该提高沟通技巧。这很难理解你。从你的问题中我们都能理解的是废话废话废话:不要使用正则表达式来解析HTML。使用适当的HTML解析模块。你无法用正则表达式可靠地解析HTML,你将面临悲伤和挫折。一旦HTML与你的期望发生变化,你的code将被破坏。有关如何使用已经编写、测试和调试过的PHP模块正确解析HTML的示例,请参见或。嗯……我认为你应该提高你的沟通技能。这很难理解你。从你的问题中我们都能理解的是废话废话废话:不要使用正则表达式解析HTML。请使用道具er HTML解析模块。您无法用正则表达式可靠地解析HTML,您将面临悲伤和挫折。一旦HTML与您的期望发生变化,您的代码将被破坏。有关如何使用已编写、测试和调试的PHP模块正确解析HTML的示例,请参阅或。@user2484836如果答案是正确的,请随意标记。@user2484836如果答案是正确的,请随意标记答案。
<p id="p_195" class="s_16" style="text-indent:6pt;"><span class="link s_8" params="65537,21403229,0,195,0,0" onmouseover="this.style.textDecoration='underline';" onmouseout="this.style.textDecoration='none';" onclick="return onClickLink(event, this);">Sometext from 28&nbsp;september 2013& nbsp;year</span></p>