从 Slack 消息中解析域
Parsing domain from Slack message
从 Slack 消息中解析域的最佳方法是什么?我有一个 Slack 机器人,用于对提供的任何主机名执行查找。当机器人从 Slack 接收到有效负载时,域的格式为:<http://example.com|example.com>
。对于这个应用程序,我只需要 example.com
.
解析它的一种方法是使用“|”拆分字符串字符并删除“< >”字符并仅使用第二个元素。
msg = slack_response
strip1 = msg.replace(">", "")
strip2 = strip1.replace("<", "")
str_arr = strip2.split("|")
domain = str_arr[1]
有没有更好的methods/libraries可以用来解析域名?机器人不会总是收到域,它有时也可以是 IP 的形式,例如 8.8.8.8
。我更愿意以一种可以处理这两种情况的方式来执行此操作。
您可以使用正则表达式,但由于 slack 的响应是可以预测的,我认为这可能有点过头了。
如果你想要一个衬垫,你可以做
msg.split("|")[-1][:-1]
但是,因为可读性很重要,所以我会推荐类似
的东西
start = msg.find("|") + 1
stop = msg.find{">")
domain = msg[start:stop]
这应该有效:
msg.replace('>', '').split('|')[1]
从 Slack 消息中解析域的最佳方法是什么?我有一个 Slack 机器人,用于对提供的任何主机名执行查找。当机器人从 Slack 接收到有效负载时,域的格式为:<http://example.com|example.com>
。对于这个应用程序,我只需要 example.com
.
解析它的一种方法是使用“|”拆分字符串字符并删除“< >”字符并仅使用第二个元素。
msg = slack_response
strip1 = msg.replace(">", "")
strip2 = strip1.replace("<", "")
str_arr = strip2.split("|")
domain = str_arr[1]
有没有更好的methods/libraries可以用来解析域名?机器人不会总是收到域,它有时也可以是 IP 的形式,例如 8.8.8.8
。我更愿意以一种可以处理这两种情况的方式来执行此操作。
您可以使用正则表达式,但由于 slack 的响应是可以预测的,我认为这可能有点过头了。
如果你想要一个衬垫,你可以做
msg.split("|")[-1][:-1]
但是,因为可读性很重要,所以我会推荐类似
的东西start = msg.find("|") + 1
stop = msg.find{">")
domain = msg[start:stop]
这应该有效:
msg.replace('>', '').split('|')[1]