我不知道如何使用正则表达式,但我的朋友告诉我这将是我想要实现的最有效的方法。我已经要求多个人提供帮助,但他们给我的所有代码都没有记录,这根本没有用。这个项目供我学习 - 我认为这将是最好的地方。无论如何 - 我正在尝试将所有内容分组到标签内。
这是一个示例代码:
<tr>
<td width=0%>One:</td><td width=23% class='colour'>Text</a></td>
<td width=0%>Two:</td><td width=23% class='colour'><div class='full' Style='width:140px'><div class='active' style='width:70px'></div></div></td>
<td width=0%>Three:</td><td class="colour"><div class='full' style='width:140px'><div class='active' style='width:70px'></div></div></td>
</tr>
<tr>
<td width=0%>Seven:</td><td class="colour">Text</a></td>
<td width=0%>Eight:</td><td class="colour"><div class='full' style='width:140px'><div class='active' style='width:84px'></div></div></td>
<td width=0%><strong>Twenty</strong>:</td><td width=23% class='colour'><div class='ful' style='width:140px'><div class='active' style='width:80.3345222473px'></div></div> (5.74)</td>
</tr>
我如何解析所有这些,以便它像这样分组? (我正在使用string []作为例子)
string[] tr1 = new string[]{
One: Text
Two: 140/70
Three: 140/70
}
string[] tr2 = new string[]{
Seven: Text
Eight: 140/84
Twenty: 140/80.3345222473
}
这些分歧基本上是“完整风格”/“活跃风格”。
这可能使用正则表达式或任何其他方式吗?
对不起,我无法展示我已经做过的事情,因为我真的没有做任何相关的事情。我已经尝试学习正则表达式模式,因为我的朋友告诉我Regex效率最高但是我失败了......叹了口气。
如果有人可以指导我完成这一步,这意味着一大堆!
谢谢!
答案 0 :(得分:0)
如果您使用以下正则表达式模式,它将帮助您提取 &#34;一:&#34;和&#34;文字&#34;当然,你可以按自己喜欢的方式连接。
<td width=0%>(.+)</td><td[^>]+>([^<]+).*</td>
工作原理:
<td width=0%>
。 (.+)
实现的,这意味着给我任何至少1个字符。什么时候知道什么时候停止是我</td>
之后有更高的优先级匹配括号。([^<]+)
来实现,这意味着在它碰到左箭头<
之前给我任何角色。</td>
之前,会出现0个或更多字符的条件。通过上述内容,您还可以使用类似的方式捕获&#34;二:&#34;和&#34;三:&#34;。
为了帮助您检索140,您需要开始寻找匹配的条件。根据您的HTML,我看到&#34; style=...
&#34;它们都在<div class=full
之内。
因此,要提取140或70或123.45,您可以使用:
<div class='full' style='width:([0-9.]+)px[^>]+>
说明:
和以前一样,你需要先决条件。然后捕获为([0-9.]+)
,这意味着至少有一个数字或点,紧接着是px
,必须匹配,依此类推。
有很多方法可以达到您的要求。 这些并不是满足您需求的最佳正则表达模式,但它们就足够了。
更新:请使用&#34;忽略大小写&#34;在正则表达式选项中,因为我看到了混合了大小写的情况。