使用正则表达式提取多个值(只有值,没有字段名)
Extracting multi values with regex ( Only values, Not Fieldname )
有人可以帮我解决这个正则表达式吗?
我想提取 1. 或 2.
1.
(2624594000) 303 days, 18:32:20.00 <-- Timeticks
.1.3.6.1.4.1.14179.2.6.3.39. <-- OID
Hex-STRING: 54 4A 00 C8 73 70 <-- Hex-STRING (need "Hex-STRING" ifself too)
0 <--INTEGER
"NJTHAP027" <- STRING
或
2.
Timeticks: (2624594000) 303 days, 18:32:20.00
OID: .1.3.6.1.4.1.14179.2.6.3.39
Hex-STRING: 54 4A 00 C8 73 70
INTEGER: 0
STRING: "NJTHAP027"
- 这个文件名和值每次都会return不同的数据。 (数据将是可变的。)
我不需要获取字段名称,只想从顶部按顺序获取值(多值)
(?s)[^=]+\s=\s(?<value_v2c>([^=]+)-)
https://regex101.com/r/lsKeEM/2
-> 我根本无法提取最后一个字符串:“NJTHAP027”!
命名组value_v2c
已经是一个组,因此您可以省略内部捕获组。
目前 -
字符应始终在模式中匹配,但您可以匹配它或断言字符串的结尾。
由于您使用否定字符 类 和 [^=]+
以及 \s
,您可以省略内联修饰符 (?s)
,因为它们都已经匹配换行符。
要匹配 2.
变体,您可以将模式更新为:
[^=]+\s=\s(?<value_v2c>[^=]+)(?:-|$)
获取1.
版本,只要不是Hex-String.
,冒号前的都可以匹配
然后在群里随意匹配一下
[^=]+\s=\s(?:(?!Hex-STRING:)[^:])*:?\s*(?<value_v2c>(?:Hex-STRING: )?[^=]+?)(?: -|$)
有人可以帮我解决这个正则表达式吗? 我想提取 1. 或 2.
1.
(2624594000) 303 days, 18:32:20.00 <-- Timeticks
.1.3.6.1.4.1.14179.2.6.3.39. <-- OID
Hex-STRING: 54 4A 00 C8 73 70 <-- Hex-STRING (need "Hex-STRING" ifself too)
0 <--INTEGER
"NJTHAP027" <- STRING
或
2.
Timeticks: (2624594000) 303 days, 18:32:20.00
OID: .1.3.6.1.4.1.14179.2.6.3.39
Hex-STRING: 54 4A 00 C8 73 70
INTEGER: 0
STRING: "NJTHAP027"
- 这个文件名和值每次都会return不同的数据。 (数据将是可变的。)
我不需要获取字段名称,只想从顶部按顺序获取值(多值)
(?s)[^=]+\s=\s(?<value_v2c>([^=]+)-)
https://regex101.com/r/lsKeEM/2 -> 我根本无法提取最后一个字符串:“NJTHAP027”!
命名组value_v2c
已经是一个组,因此您可以省略内部捕获组。
目前 -
字符应始终在模式中匹配,但您可以匹配它或断言字符串的结尾。
由于您使用否定字符 类 和 [^=]+
以及 \s
,您可以省略内联修饰符 (?s)
,因为它们都已经匹配换行符。
要匹配 2.
变体,您可以将模式更新为:
[^=]+\s=\s(?<value_v2c>[^=]+)(?:-|$)
获取1.
版本,只要不是Hex-String.
然后在群里随意匹配一下
[^=]+\s=\s(?:(?!Hex-STRING:)[^:])*:?\s*(?<value_v2c>(?:Hex-STRING: )?[^=]+?)(?: -|$)