正则表达式找到字符串,回到“一个字”,并给我接下来的6个字符

时间:2016-06-25 10:28:02

标签: regex

仍然是正则表达式的新手,我需要使用PowerShell。 +它应该回馈所有事件......

这是字符串的示例(一个大行):

{ “类型”: “HM”, “ADR”: “ 30CC170 ”, “状态”: “01:的 FE ”},{ “类型”: “HM”, “ADR”: “ 37519701 ”, “状态”: “00:FF”},{ “类型”: “HM”, “ADR”:“ 3AD95D01 ”, “状态”: “FF:的 FE ”},

现在,搜索 FE 并返回值30CC1701& 3AD95D01(总是8个字符,并且在adr“:”之后立即显示)

任何可以提供帮助的人?会很棒:o)

2 个答案:

答案 0 :(得分:0)

我可以为你提供一个很好的正则表达式来开始玩。您应该将它与全局标志一起使用以提取所有出现次数

\"adr\":\"([^"]+)\",\"state\":\"[0-9A-Fa-f]{2}:FE\"

正则表达式在下面解释

\"adr\":             - Match "adr":
\"([^"]+)\"          - Capture a quoted string [^"]+ matches any non quoted character
,\"state\":          - Matches ,"state":
\"[0-9A-Fa-f]{2}\"   - Match a string in format "xx:FE" where x represent any a hex number 0-9 or A-F.

答案 1 :(得分:0)

"adr":"([^"]{8})"[^}]+?FE将是一种方法,其中第1组捕获8个字符的值(或6到8之间 - {6,8})。

(?<="adr":")[^"]{8}(?="[^}]+FE)将捕获与非捕获前瞻/后方的整个匹配相同的内容。

返回所有匹配项是特定API的函数,而不是正则表达式。我相信,它将是PowerShell中的-AllMatches选项。