Javascript 正则表达式找到子字符串

Javascript 正则表达式找到子字符串,javascript,regex,string,Javascript,Regex,String,我有一个字符串列表,看起来像这样 "Heartbeats::hype-wss://vps-gb2.nsa.drw:7026" "Heartbeats::hype-wss://vps-de7.nsa.drw:7026" "Heartbeats::hype-wss://vps-gb3.nsa.drw:7006" "Heartbeats::hype-wss://vps-de2.nsa.drw:7043" "Heartbeats::hype-wss://vps-jp2.nsa.drw:7060" "He

我有一个字符串列表,看起来像这样

"Heartbeats::hype-wss://vps-gb2.nsa.drw:7026"
"Heartbeats::hype-wss://vps-de7.nsa.drw:7026"
"Heartbeats::hype-wss://vps-gb3.nsa.drw:7006"
"Heartbeats::hype-wss://vps-de2.nsa.drw:7043"
"Heartbeats::hype-wss://vps-jp2.nsa.drw:7060"
"Heartbeats::hype-wss://vps-jp2.nsa.drw:7071"
"Heartbeats::hype-wss://vps-de3.nsa.drw:7055"
"Heartbeats::hype-wss://vps-de3.nsa.drw:7066"
"Heartbeats::hype-wss://vps-gb2.nsa.drw:7005"
我想得到
vps-
之后的子字符串
gb2
de7
gb3
等,以及末尾的四位数。在正则表达式中有没有一种干净的方法可以做到这一点


提前感谢

您可以轻松做到以下几点:

vps-([^.]+)
这意味着:

  • vps-
  • 匹配
  • [^.]
    任何不是点的东西
  • +
    一次或多次
对于末尾的数字,您可以使用以下展开:

vps-([^.]+).*:(\d+)$
  • *
    任何字符0次或更多次,直到
  • 列和
  • (\d+)
    匹配一个或多个整数
  • $
    后跟字符串结尾
这对您很有用:

.*vps-([^.]*)[^:]*:(\d*)
您必须获取组[0]和组[1]

您可以在此处进行测试:


使用这些示例,这是一个可选的
/(\w+\d)/g

说明:

console.log(“心跳::炒作-wss://vps-gb2.nsa.drw:7026“.match(/(\w+\d)/g))
log(“心跳::炒作-wss://vps-de7.nsa.drw:7026“.match(/(\w+\d)/g))
log(“心跳::炒作-wss://vps-gb3.nsa.drw:7006“.match(/(\w+\d)/g))
log(“心跳::炒作-wss://vps-de2.nsa.drw:7043“.match(/(\w+\d)/g))
log(“心跳::炒作-wss://vps-jp2.nsa.drw:7060“.match(/(\w+\d)/g))
log(“心跳::炒作-wss://vps-jp2.nsa.drw:7071“.match(/(\w+\d)/g))
log(“心跳::炒作-wss://vps-de3.nsa.drw:7055“.match(/(\w+\d)/g))
log(“心跳::炒作-wss://vps-de3.nsa.drw:7066“.match(/(\w+\d)/g))
log(“心跳::炒作-wss://vps-gb2.nsa.drw:7005“.match(/(\w+\d)/g))

.as控制台包装{max height:100%!重要;top:0;}
/\/{2}\w+-(\w{3})|(\d+$)/
并访问这些组。看看这里。一般来说,在寻求帮助之前,做一些研究并尝试一些事情。只回答了一半的问题。这并不能满足OP的所有要求。这是一个简单的…惊人的解决方案。我肯定想得太多了。就像一个小旁注,
。aaa.ZZZ:
没有任何数字是必须的-其他明智的是,它可能会崩溃(例如:
心跳::炒作-wss://vps-gb2.n3a.drw:7026
)@RokoC.Buljan是的,因为我说过使用这些samples@Ele如果字符串没有
vps-
前缀,是否有方法捕获
test
-wss://test.nsa.drw:8558