js正则表达式如何提取中间的字符?

来自 220.181.38.148 的回复: 字节=32 时间=15ms TTL=53

我想提取 =15ms 中间的 15,写了半天都不对

这样写不对,

这样虽然勉强能拿到,但是从第一个=号开始匹配的


这样的不算,只能是从 =号 和ms中间提取


有没有一句正则能搞定呢?

阅读 6.8k
4 个回答
"来自 220.181.38.148 的回复: 字节=32 时间=15ms TTL=53".replace(/^.*?=(\d+)ms.*$/, "$1");
let r = "来自 220.181.38.148 的回复: 字节=32 时间=15ms TTL=53"

r.match(/(?!=时间\=)\d+ms/g)

大概是这样吧,细节可以去查查零宽,反向零宽之类的关键词

'来自 220.181.38.148 的回复: 字节=32 时间=3ms TTL=53'.match(/=(\d+)ms/)

直接 /\d+ms/ 就可以取出 15ms 了,正则引擎会把 ms 作为一个结束标志,所以\d+最终只会匹配到 ms 前的数字,其他数字由于不符合后面跟着 ms 结束标志,最终会被舍弃

"来自 220.181.38.148 的回复: 字节=32 时间=15ms TTL=53".match(/\d+ms/)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题