【发布时间】:2018-08-26 16:35:47
【问题描述】:
我正在尝试整理以下代码,我使用正则表达式并需要一些帮助。
这是我从网站获取后保存到变量中的文本。
[ '<td bgcolor="#2D2F34"> <font color="#999999">Name: </font><a href="site.php?page=send&sendto=Username"><font color="#999999">Username</font></a> </td>', '<td bgcolor="#2D2F34"> <font color="#999999">Crew: </font><a href="site.php?page=crewprofile&id=2120"><font color="#999999">My Crew</font></a> </td>', '<td bgcolor="#2D2F34"> <font color="#999999">Wealth: Rich</font></td>', '<td bgcolor="#2D2F34"> <font color="#999999">Rank: Hitman</td>', '<td bgcolor="#2D2F34"> <font color="#999999">Status: Alive ( </font><font color=green>Online</font><font color="#999999"> )</font><tr><td bgcolor="#2D2F34"> <font color="#999999">Messages sent: 3</font></td>', '<td bgcolor="#2D2F34"> <font color="#999999">Messages received: 1</font></td>' ]
此文本也可以包含更多或更少的标签,因为这是从每个“个人资料”都不同的网站获取的。
我希望它返回的是
Name: Username
Crew: My Crew
Wealth: Rich
Rank: Hitman
Status: Alive ( Online )
Messages sent: 3
Messages received: 1
感谢所有帮助!谢谢
【问题讨论】:
-
使用 HTML 解析器,而不是正则表达式 (obligatory link)。 Node.js 有几个。
-
为了改进您的问题,提供任何预期字符串匹配的完整超集以及您希望它们拥有的值将是有益的。同样正如@T.J.Crowder 已经说过的那样,使用 HTML 解析器也会更有效率。
-
@BhojendraRauniyar 请阅读:
"...after fetching it from a website"- 所以还有希望 -
@JanHenning 正如建议的那样,用正则表达式解析 HTML 从来都不是一件好事。如果在 Node 中,请查看 npmjs.com/package/jsdom 并简单地从 Elements 中检索
textContent- 我建议首先创建一个内存<table>和<tr>作为包装器,将<td>字符串作为元素附加到之前试图获取内容。 -
@RokoC.Buljan 谢谢,会看看。给您添麻烦了。
标签: javascript node.js regex