我有一个看起来很喜欢这个
的字符串列表"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"
我想获得gb2
之后的子串de7
,gb3
,vps-
等,以及最后的四位数字。在正则表达式中有没有一种干净的方法呢?
提前致谢
答案 0 :(得分:3)
使用这些样本,这是另一种/(\w+\d)/g
说明: https://regex101.com/r/64MOHt/1
console.log("Heartbeats::hype-wss://vps-gb2.nsa.drw:7026".match(/(\w+\d)/g))
console.log("Heartbeats::hype-wss://vps-de7.nsa.drw:7026".match(/(\w+\d)/g))
console.log("Heartbeats::hype-wss://vps-gb3.nsa.drw:7006".match(/(\w+\d)/g))
console.log("Heartbeats::hype-wss://vps-de2.nsa.drw:7043".match(/(\w+\d)/g))
console.log("Heartbeats::hype-wss://vps-jp2.nsa.drw:7060".match(/(\w+\d)/g))
console.log("Heartbeats::hype-wss://vps-jp2.nsa.drw:7071".match(/(\w+\d)/g))
console.log("Heartbeats::hype-wss://vps-de3.nsa.drw:7055".match(/(\w+\d)/g))
console.log("Heartbeats::hype-wss://vps-de3.nsa.drw:7066".match(/(\w+\d)/g))
console.log("Heartbeats::hype-wss://vps-gb2.nsa.drw:7005".match(/(\w+\d)/g))
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:0)
你可以轻松地做到:
vps-([^.]+)
表示:
vps-
(
匹配[^.]
任何不是点的内容+
一次或多次对于最后的数字,您可以使用以下内容进行扩展:
vps-([^.]+).*:(\d+)$
.*
任何字符0次或更多次,直到...... :
列和... (\d+)
匹配一个或多个整数$
后跟字符串结尾答案 2 :(得分:0)