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