正则表达式

时间:2019-07-09 15:11:15

标签: powershell

我需要使用Powershell Regex从字符串下面提取一些值。

Request ID = 1234 { andquot;EMOandquot;: andquot;123456-Uandquot;, andquot;Terminated Accountandquot;: andquot;Test Userandquot;, andquot;Descriptionandquot;: andquot;andquot;, andquot;Last Dayandquot;: andquot;2019-06-26andquot;, andquot;Terminated User Mailandquot;: andquot;Test.User@gmail.comandquot; } Location : UK ,London

我需要获取Test.User@gmail.com,测试用户和2019-06-26。请帮助我获取powershell正则表达式,以便从上述字符串中获取这些值。

谢谢。

我在下面尝试过-

$ description =“请求ID = 1234 {和“ EMOand”:和“ 123456-Uand”,以及“ Terminated Accountand”:和“ Test Userand”,和“ Descriptionand”:和“ and”,以及“ Last Dayand” ;:和“ 2019-06-26and”,和“ Terminated User Mail”:和“ Test.User@gmail.comandquot”}位置:英国,伦敦”

$ formatdesc = $ description -replace'?(and)?quot;','“'

$ formatdesc 请求ID = 1234 {“ EMO”:“ 123456-U”,“终止帐户”:“测试用户”,“描述”:“”,“最后一天”:“ 2019-06-26”,“终止用户邮件” :“” Test.User@gmail.com“}位置:英国,伦敦

在上面,我将如何提取“终止的用户邮件”,“终止的帐户”和“最后一天”,这些值不是静态的,而是动态的。请帮忙。

1 个答案:

答案 0 :(得分:1)

按逻辑划分您要首先查找的模式。看起来您正在寻找:Test.User@gmail.com测试用户-使用简单的-match例如$ Myvariablename = [您的字符串]-匹配'Test.User@gmail.com'

2019-06-26:对于这样的日期,请将其细分为4位数字,连字符,2位数字,连字符和2位数字,以便(很快且因此不经过测试就不完美)匹配$ Myvariablename = [您的字符串] -match'^ \ d {4}-\ d {2}-\ d {2}'