【发布时间】:2014-03-01 20:04:47
【问题描述】:
我的正则表达式有问题。我的数据如下所示:
<tr class="abcData"><td>Text Number One</td><td>text</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
<tr class="abcData"><td>Text Number Two</td><td>text</td><td><span class="value">3</span></td><td><span class="value">3</span></td><td> </td><td> </td><td> </td><td> </td></tr>
<tr class="abcData"><td>Text Number Three</td><td>text</td><td><span class="value">3.5</span></td><td><span class="value">2</span></td><td><span class="value">3.5</span></td><td> </td><td> </td><td> </td></tr>
如您所见,第 3-8 个单元格可以包含数字(整数/双精度)、  或被 span 包围的数字。
<tr class="abcData"><td>([\s\w]+)</td><td>([\s\w.-]+)</td><td>([\d.\s\w&;]+)</td><td>(\3)</td><td>(\3)</td><td>(\3)</td><td>(\3)</td><td>(\3)</td></tr>
我的正则表达式仅适用于第一个示例(第一个文本),我不知道如何为此编写 OR 语句(我需要相同的 8 组结果)。
我正在http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx 上测试我的正则表达式。
【问题讨论】:
-
如果您有正则表达式问题。请包括您正在使用的语言/工具。
-
对不起。我正在derekslager.com/blog/posts/2007/09/… 上测试正则表达式。我用 Java 编程
-
现在我已经仔细查看了输入。我看到一些随机的
<spans>从这里和那里弹出。我还看到一个冗余表达式[\d.\s\w&;]+,\w包括\d,所以你可以删除\d。如果您采用正则表达式方式,特别是如果您不太擅长它,它会变得复杂。你不应该考虑一个合适的 HTML 解析器吗? -
@Bugs 这可能是一个有趣的答案,但it's a rant。