Node.js 机器人从消息中提取链接
Node.js Bot pulling links out of messages
我正在 node.js 中为 Discordapp.com 创建一个机器人,它将从 Steam 配置文件的 xml 中提取信息。它从用户消息中获取配置文件 links。
我很难找到一种方法让我的机器人从消息中提取 link,因为它们不一致。
消息可能如下所示:
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/”,其他的都不一样。关于如何仅从每条消息中提取整个 link 而没有其他任何内容,我能否得到一些帮助?
这是正则表达式的好地方。这是一个将匹配任何 steamcommunity.com URL 与 /profiles/
后跟数字和 /id/
后跟字符的匹配。
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];
我正在 node.js 中为 Discordapp.com 创建一个机器人,它将从 Steam 配置文件的 xml 中提取信息。它从用户消息中获取配置文件 links。
我很难找到一种方法让我的机器人从消息中提取 link,因为它们不一致。
消息可能如下所示:
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/”,其他的都不一样。关于如何仅从每条消息中提取整个 link 而没有其他任何内容,我能否得到一些帮助?
这是正则表达式的好地方。这是一个将匹配任何 steamcommunity.com URL 与 /profiles/
后跟数字和 /id/
后跟字符的匹配。
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];