从正斜杠分隔文本中提取用户名

时间:2016-06-30 12:48:02

标签: regex data-extraction

我需要通过正则表达式从日志中提取用户名以获取日志收集器。

由于日志的性质,我们无法准确定义有多少正斜杠可用,我需要选择一个特定的数据,因为有多个类似格式化数据的出现。

必填数据:

name="performedby" label="Performed By" value="blah.com/blah/blah blah/blah/**USERNAME**"|

< 46> Jun 23 10:38:49 10.51.200.76 25113 LOGBinder EX | 3.1 | success | 2016-06-23T10:38:49.0000000-05:00 | Add-MailboxPermission Exchange cmdlet颁发| name =“发生“label =”发生“value =”2016年6月23日上午10:38:49“| name =”cmdlet“label =”Cmdlet“value =”Add-MailboxPermission“| name =”performby“label =”Performed By “value =”blah.com/blah/blah blah / blah / USERNAME “| name =”succeeded“label =”Succeeded“value =”Yes“| name =”error“label =”错误“value =”无“| name =”originatingserver label =“Originating Server”value =“black”| name =“objectmodified”label =“Object Modified”value =“blah / blah / USERNAME”| name =“parameters”label =“Parameters”value =“Name:Identity,Value:[blah] Name:User,Value:[blah / blah] Name AccessRights,Value:[FullAccess] Name:InheritanceType,Value:[All]”| name =“properties “label =”已修改的属性“value =”n / a“| name =”additionalinfo“label =”其他信息“

我已经尝试了一些不同的正则表达式命令,但是如果没有确切地说明将会有多少/那么我就无法提取必要的信息。

blah\.com[.*\/](.*?)"\|name

3 个答案:

答案 0 :(得分:1)

试试这个:

blah\.com.*\/(.*?)"\|

检查here

如果您的用户名格式为:

value="abc.xyz/something/something/..../USERNAME"

然后使用它:

\..*\/(.*?)"

检查here

答案 1 :(得分:0)

可能的解决方案: value="[a-z\.\/]*\/(.*)"

(第一个捕获组是用户名)

工作示例: https://regex101.com/r/qZ0zC8/2

答案 2 :(得分:0)

Mayby喜欢这个?

blah.(\w+\/)+\K([\w]+)

它捕获了用户名,但因为它介于**之间,所以我也匹配它们

在notepad ++中测试