记一次复杂的正则匹配——匹配但不包含
原始的日志信息如下:
RunspaceId : d3dbe55b-b0c2-48ef-8f49-0f30ebd553aa ObjectModified : test CmdletName : New-Mailbox CmdletParameters : {ResetPasswordOnNextLogon, Alias, Password, UserPrincipalName, Database, SamAccountName, LastName, OrganizationalUnit, Initials, FirstName, Name} ModifiedProperties : {} Caller : TEst.Admin Succeeded : True Error : RunDate : 2014/3/24 10:01:49 OriginatingServer : TEST(15.00.0775.022) Identity : RgAAAABRB0jEnPi7SZ46Wv3WKUahBwAfCsv7xh/zT66wYhIbLojWAAAAb1GrAABdb7eQEuSqQ5aHAWignShgAAAAACmAAAAJ IsValid : True
现需要将以上文本以:为分隔提取后面的值信息,因为开发的通用日志解析工具是通过正则来提取数据的,这样就需要把这个数据块中特征通过正则表示出来,然后提取特征之后的数据,研究了大半天后来终于给写出来了,好费劲,正则不熟啊,记录一下:
(?:RunspaceId : )(?<RunspaceId>[\s\S]*) (?:ObjectModified : )(?<ObjectModified>[\s\S]*) (?:CmdletName : )(?<CmdletName>[\s\S]*) (?:CmdletParameters : )(?<CmdletParameters>[\s\S]*) (?:ModifiedProperties : )(?<ModifiedProperties>[\s\S]*) (?:Caller : )(?<Caller>[\s\S]*) (?:Succeeded : )(?<Succeeded>[\s\S]*) (?:Error : )(?<Error>[\s\S]*) (?:RunDate : )(?<RunDate>[\s\S]*) (?:OriginatingServer : )(?<OriginatingServer>[\s\S]*) (?:Identity : )(?<Identity>[\s\S]*) (?:IsValid : )(?<IsValid>.*)
最终通过正则的组名去获取匹配上的信息就可以了。
(?:pattern) |
匹配 pattern 但不捕获该匹配的子表达式,即它是一个非捕获匹配,不存储供以后使用的匹配。这对于用“or”字符 (|) 组合模式部件的情况很有用。例如,'industr(?:y|ies) 是比 'industry|industries' 更经济的表达式。 |
转载于:https://www.cnblogs.com/jasondan/p/3726119.html
记一次复杂的正则匹配——匹配但不包含相关推荐
- 快速解决正则----模糊匹配、字符类、量词
主体概要 正则表达式是什么 是匹配模式.要么匹配字符.要么匹配位置 内容 掌握字符类和量词就能解决大部分常见正则问题 关键内容:字符组.量词.贪婪.惰性.模糊.横向.纵向.分支.位置 重要的基础 ...
- php 正则中文匹配
汉字一定注意是gbk还是utf8编码 UTF-8匹配:在javascript中,要判定字符串是中文是很简朴的.比如:var str = "php编程";if (/^[\u4e00- ...
- 利用正则匹配数字后边的字符_图解正则——字符匹配
简介 正则表达式是绕不开的,正则的强大是众所周知的,学会它对我们的编程也是有大大的帮助 模糊匹配 正则表达式之所以强大,就要归功于它的模糊匹配,不能可以匹配不同数量的字符串,还可以匹配不同内容的字符串 ...
- mysql 替换非中文_mysql中的正则操作 匹配手机号,匹配中文,替换
mysql中的正则操作 匹配手机号,匹配中文,替换 正则匹配hy_user表内tel字段的电话号码: SELECT * FROM hy_user WHERE tel REGEXP "[1][ ...
- NodeJS 正则路由匹配
NodeJS 正则路由匹配 本文主要记录一下学习中遇到的正则路由匹配问题 const express = require("express"); const app = expre ...
- 正则双重过滤 /// splitKey1 第一个正则式匹配 /// splitKey2 匹配结果中再次匹配进行替...
/// <summary>/// 正则双重过滤/// splitKey1 第一个正则式匹配/// splitKey2 匹配结果中再次匹配进行替换/// </summary>// ...
- java 正则 惰性匹配_正则表达式 - 贪婪与非贪婪(惰性)
使用场景 有时,我们想用正则匹配以某个子串开头,且以某个子串或字符结尾的子字符串,但是结尾的字串或字符在原字符串中出现了多次,但我们只想匹配从开始处到第一次出现的地方,换句话说,想得到开始和结尾之间内 ...
- php正则取出后不保留左右,PHP 正则 如何匹配不出现某段字符串的写法!(保留备份)...
网友cfc4n问及关于(?!)的正则表达式问题.回答之后,顺便总结了一下Perl语言中如何匹配"不出现"某元素,贴在这里. 问题 问题描述 有如下文本,如何使用正则式,将其中 不含 ...
- 易语言 正则_匹配空白中间数字
表达式: [\s]*([\d]+)[\s]* +表示空白中间必定有一个或多个数字 代码 .版本 2.子程序 正则_批量匹配空白中间数字, 整数型, , 本子程序采用[精易编程助手]生成.成功返回匹配的 ...
- mysql中的正则操作 匹配手机号,匹配中文,替换
mysql中的正则操作 匹配手机号,匹配中文,替换 正则匹配hy_user表内tel字段的电话号码: SELECT * FROM hy_user WHERE tel REGEXP "[1][ ...
最新文章
- java怎么求两组整数的或集,确定整数是否在具有已知值集的两个整数(包括)之间的最快方法...
- 外卖市场的搅屎棍要来了?字节跳动内测“心动外卖”!
- 以Spring方式构建企业Java应用程序
- 线上BUG 处理并分析原因
- 20145228《网络对抗》 后门原理与实践
- linux下tab作用的描述?
- 可以在搜索中突出显示网页上的多个单词_使用片段嵌入进行文档搜索
- 现在的技术人啊,1小时200的活都看不上了吗?
- 使用 JavaScript 制作一个可以弹的吉他
- 还原html默认打开方式,怎么还原打开方式,详细教您Win10系统下如何还原程序默认打开方式...
- 怎样快速将word文档翻译成中文
- flask android app socketio加解密 匿名加密聊天室 不被任何官方非官方机构个人监视的匿名聊天室!!! 想聊什么就聊什么!
- 日常记录,vue-table表格背景透明
- php调试工具win7,xdebug最新版下载
- 如何给pdf添加页码?
- linux内核编译和安装
- window安全小知识1——autorun.inf相关知识
- 最新织梦仿冷轩资源网模板(善恶资源网、新版小刀娱乐网模板)
- 深度解析:华为海思的不利局面
- windows中禁止U盘写入
热门文章
- 关于读取配置文件的一个小笔记
- 每天一道剑指offer-对称的二叉树
- 每天一道剑指offer-从上往下打印二叉树
- 用c#语言制作ktv点歌系统,KTV点歌系统的设计与实现的设计和实现(C#,C/S,Access)
- 根据用户输入的参数的个数来计算长方形或正方形的面积_小面积(2-4.5㎡)卫生间,怎么做干湿分离?(附:方案+参数+案例)...
- redis练习-模拟手机验证码的发送
- redis rua解决库存问题_技术架构师总结:Redis分布式锁的问题和解决
- liunx上mysql源码安装mysql_搞定linux上MySQL编程(一):linux上源码安装MySQL
- java两个数组中不同的数字_【Java】 剑指offer(56-1) 数组中只出现一次的两个数字...
- c语言变量按作用域分类,C语言总结之变量的种类