微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用正则表达式查找字符串中所有脱机的磁盘号

如何解决如何使用正则表达式查找字符串中所有脱机的磁盘号

我正在使用 nodejs 执行某个 cmd 脚本,但是 cmd 的输出是字符串格式,我需要访问哪些磁盘编号处于脱机状态。

例如,我需要搜索的字符串是

"\r\nMicrosoft diskPart 版本 10.0.19041.610\r\n\r\n版权所有 (C) Microsoft Corporation。\r\n在计算机上:DESKTOP-HACFL5A\r\n\r\n 磁盘 ### 状态大小Free Dyn Gpt\r\n -------- ------------- ------- ------- --- ---\r \n 磁盘 0 在线 238 GB 1024 KB *\r\n 磁盘 1 在线 14 GB 9 GB *\r\n\r\n磁盘 1 现在是选定的磁盘。\r\n"

通过使用以下正则表达式,我得到了在线有 2 个磁盘的信息,但是我如何获得它们的磁盘编号?我需要正则表达式输出来将所有离线磁盘编号存储在一个数组中。

var str = JSON.stringify(stdout);
var matches = str.match( /Online/g )
console.log("matches is: ",matches)

匹配是:['在线','在线']

解决方法

这行得通:

\d+(?= Offline)

var str = `Microsoft DiskPart version 10.0.19041.610

Copyright (C) Microsoft Corporation.
On computer: DESKTOP-HACFL5A

 Disk ### Status Size Free Dyn Gpt
 -------- ------------- ------- ------- --- ---
 Disk 0 Offline 238 GB 1024 KB *
 Disk 1 Online 14 GB 9 GB *

Disk 1 is now the selected disk.`;

var matches = str.match( /\d+(?= Offline)/g );

console.log("matches is: ",matches)

,

用下面的代码让它工作

var str = JSON.stringify(stdout);
const t = str.replace(/\s+/g,' ').trim()
const regex = /\bDisk (\d+) Online\b/g;
console.log(Array.from(t.matchAll(regex),m => m[1]));

谢谢大家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?