我正在Discordapp.com的node.js中制作一个机器人,该机器人将从Steam配置文件的xml中提取信息。它从用户消息中获取配置文件链接。
我很难找到一种方法,让我的机器人从消息中拉出链接,因为它们不一致。
消息可能看起来像:
http://steamcommunity.com/profiles/76562119803123205611 look at that guys
要么
Take a look at this www.steamcommunity.com/id/someusername/
要么
look at this steamcommunity.com/profiles/766119803232061 looks cool right?
唯一一致的是“ http://steamcommunity.com/”,其他所有内容都不相同。我如何从每个消息中仅提取整个链接,而别无其他,可以得到一些帮助吗?
最佳答案
这是用于正则表达式的好地方。这是将与任何带有/profiles/
,后跟数字和/id/
和字符的Steamcommunity.com URL匹配的URL。
var test = "www.steamcommunity.com/id/someusername/";
var regexp = new RegExp("(steamcommunity.com)(/id/[a-z]+|(/profiles/(\d)+))", "i");
var out = test.match(regexp)[0];