首页 > 其他 > 详细

正则表达式

时间:2020-08-26 17:24:38      阅读:71      评论:0      收藏:0      [点我收藏+]

【备注:这里记录下常用的正则表达式匹配规则】

1. 匹配一行内容并取出其中的值 <--> /^(\S+)\s+(\S+)\s+(\d*)\S?\s+(\d*)\S?\s+(\d*)\S?\s+(\d*)\S?\s+(\S*)/

这里输入命令df -PTBK可看到磁盘信息如下:

技术分享图片

这时如果需要获取具体的数值,可以按如下处理(nodejs实现):

技术分享图片
‘use strict‘;

var execFile = require(‘child_process‘).execFile;
var Log = require(‘../lib/log‘).GetLogger();

var BINPATH = ‘/bin/df‘;
var PARAMS = [‘-PTBK‘];

var VolumeREGEXP = /^(\S+)\s+(\S+)\s+(\d*)\S?\s+(\d*)\S?\s+(\d*)\S?\s+(\d*)\S?\s+(\S*)/;
var UNITS = 1024;


function DiskVolumeProbe(cb) {
    Log.info(‘Call Func DiskVolumeProbe‘);

    execFile(BINPATH, PARAMS, function (error, stdout, stderr) {
        if (error) {
            return cb(error);
        } else {
            if (stderr) {
                Log.error(stderr);
            }

            var result = ParseVolumesData(stdout);
            return cb(error, result);
        }
    });
}
exports.DiskVolumeProbe = DiskVolumeProbe;


function ParseVolumesData(data) {
    Log.info(‘Call Func ParseVolumesData‘);

    var parseResult = [];

    var datas = data.split(‘\n‘);
    for (var i = 1; i < datas.length; i++) {
        var curLine = datas[i];

        // 空行不处理
        if (curLine.length === 0) {
            continue;
        }

        var result = curLine.match(VolumeREGEXP);
        if (result) {
            var fileSystemType = result[2];
            //do something
        } else {
            var MatchErr = new Error(‘[ ‘ + curLine + ‘ ] Not match to VolumeREGEXP‘);
            MatchErr.name = ‘MatchErr‘;
            Log.error(MatchErr);
        }
    }

    return parseResult;
}
View Code

 

正则表达式

原文:https://www.cnblogs.com/LuckyOven/p/13565883.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!