正则表达式,用于检查字符串的一部分并使用逗号提取数字

时间:2018-04-26 21:12:54

标签: c# regex

我一直在搜索,并试图找出如何编写正则表达式来解决我的问题。到目前为止,我已经做空了。这就是我想要做的事情。找到包含" 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

2 个答案:

答案 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] )