Javascript 中的正则表达式对类别中的项目进行分组
我需要在 Javascript 中实现一个 RegExp,它允许我匹配以下类别和项目,将这些项目与其正确的类别相关联,但我不知道如何:
<table>
<tbody>
<tr>
<td>
<a href="mycategory1.asp">text</a>
</td>
</tr>
</tbody>
</table>
<div>
<table>
<tbody>
<tr>
</td>
<a href="myitem1.asp">text</a>
<td>
</tr>
<tr>
</td>
<a href="myitem2.asp">text</a>
<td>
</tr>
<tr>
</td>
<a href="myitem3.asp">text</a>
<td>
</tr>
.....................
</tbody>
</table>
</div>
<table>
<tbody>
<tr>
<td>
<a href="mycategory2.asp">text</a>
</td>
</tr>
</tbody>
</table>
我可以有超过 10 个类别,但我不知道如何每个类别中都会包含许多项目。 我可以轻松创建一个与我匹配的类别和另一个与项目匹配的正则表达式,但如何在它们之间创建关系?
谢谢并致以最诚挚的问候,
利维奥
I need to implement a RegExp in Javascript that allows me to match the following categories and items, associating the items to their proper category, but I don't know how:
<table>
<tbody>
<tr>
<td>
<a href="mycategory1.asp">text</a>
</td>
</tr>
</tbody>
</table>
<div>
<table>
<tbody>
<tr>
</td>
<a href="myitem1.asp">text</a>
<td>
</tr>
<tr>
</td>
<a href="myitem2.asp">text</a>
<td>
</tr>
<tr>
</td>
<a href="myitem3.asp">text</a>
<td>
</tr>
.....................
</tbody>
</table>
</div>
<table>
<tbody>
<tr>
<td>
<a href="mycategory2.asp">text</a>
</td>
</tr>
</tbody>
</table>
I can have more than 10 categories, and I don't know how many items will be in each category.
I could easily create a RegExp that matches me the categories and another one for the items, but how can I create a relation between them?
Thanks and best regards,
Livio
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要使用正则表达式读取 HTML。为表提供类,然后通过 DOM 遍历读取它们。 HTML 应如下所示:
然后按如下方式列出它们:
Don't read HTML using Regexes. Give the tables classes and then read them with DOM traversal. The HTML should look like this:
Then make a list of them like this:
正则表达式并不是解决所有问题的灵丹妙药。正则表达式是为使用模式进行文本匹配而设计的。恕我直言,使用任何 XML 解析器都可以更好地解决这个问题。
Regular Expressions is not the silver bullet for all the problems.. RegEx is made for text matching using patterns. IMHO this problem is better solved using any XML parser.