我一直在搜索,并试图找出如何编写正则表达式来解决我的问题。到目前为止,我已经做空了。这就是我想要做的事情。找到包含" Offset的字符串的一部分:"并提取后面的数字。我的问题是这个数字可以从1到10,000,000。它的逗号让我难过。欢迎任何帮助。 这是它可能看起来的样本。对于c#而言,以防万一,正如我所读到的,可以有不同的正则表达式。这是一个文本样本。
"22:22:33.4643071","taskhostw.exe","4504","WriteFile","C:\Users\M O Shea\AppData\Local\Microsoft\Windows\WebCache\V01.log","SUCCESS","Offset: 286,720, Length: 4,096, I/O Flags: Write Through, Priority: Normal"
abdc Offset: 1 some more text
abdc Offset: 10 some more text
abdc Offset: 100 some more text
abdc Offset: 1,000 some more text
abdc Offset: 10,000 some more text
abdc Offset: 100,000 some more text
abdc Offset: 1,000,000 some more text
答案 0 :(得分:0)
试试这个:
offset:\s*(?<offset>\d+(,\d+)*)
match.Groups["offset"].Value
应该为您提供号码。
答案 1 :(得分:0)
如果我正确地读你,那就行了
Offset:[ ]+(10{0,2}(?:,0{3})?|10?(?:,0{3}){2})(?![,\d])
https://regex101.com/r/yyhW7K/1
可读版本
Offset: [ ]+
( # (1 start)
1
0{0,2}
(?: ,0{3} )?
| 10?
(?: ,0{3} ){2}
) # (1 end)
(?! [,\d] )