首页 > 解决方案 > 使用 Javascript 的表格内容的正则表达式

问题描述

我正在尝试使用 NodeJS 从 .txt 文件中获取特定值。希望使用正则表达式是实现这一目标的最佳方式。所以我从我这边尝试了下面的代码,在这里我可以从非表格区域获取值。

var res4 = data.match(/\d*.\d*%id/g);
var res5 = data.match(/\d*\d*k free/g);
console.log(res4); **// [ '93.2%id' ]**
console.log(res5); **//[ '862100k free', '6143996k free' ]**

但是当我试图在 .txt 文件的表格格式中获取值时,我无法做到。以下是供您参考的源 .txt 文件。在这里,我需要 cuic_reporting(在命令列中)及其相应的 %CPU 列值。请帮助我。谢谢。

 top - 02:51:10 up 176 days, 23:47,  1 user,  load average: 0.13, 0.09, 0.07
Tasks: 208 total,   1 running, 207 sleeping,   0 stopped,   0 zombie
Cpu(s):  4.7%us,  1.9%sy,  0.1%ni, 93.2%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:  16336156k total, 15474056k used,   862100k free,   362908k buffers
Swap:  6143996k total,        0k used,  6143996k free,  8415656k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
20967 OSAdmin   30  10 1299m 120m  26m S 35.7  0.8   0:03.47 java
14231 tomcat    20   0 3422m 3.1g  22m S  2.0 20.0  10869:37 cuic_reporting
    1 root      20   0 19572 1812 1244 S  0.0  0.0   2:59.65 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0  25:22.51 migration/0
    4 root      20   0     0    0    0 S  0.0  0.0   2:42.43 ksoftirqd/0
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0
    6 root      RT   0     0    0    0 S  0.0  0.0   0:14.34 watchdog/0
    7 root      RT   0     0    0    0 S  0.0  0.0  25:47.89 migration/1
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/1

谢谢 !!..

标签: javascriptnode.jsregex

解决方案


我给你我的意见,我会怎么做:

例如,在使用 fs 模块读取文件后,我会尝试拆分 txt 的数据(通过制表符('\t')和换行符('\n' 或 '\r'),如果你不这样做逐行读取),然后您可以成功地将正则表达式应用于结果数组的每个元素。

我希望它对你有帮助!

参考:

https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/String/split

https://nodejs.org/api/fs.html

https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/String/match


推荐阅读