C# 正则表达式,用于检查字符串的一部分并使用逗号提取数字
我一直在搜索,并试图找出如何编写正则表达式来解决我的问题。到目前为止,我还不够。这就是我想做的。查找字符串中包含“Offset:”的部分,并提取其后面的数字。我的问题是这个数字可以从1到10000000。让我困惑的是逗号。欢迎任何帮助。 这是它可能看起来的一个示例。这是为c#准备的,以防万一,正如我读到的,regex可以有不同的口味。这是一个文本示例C# 正则表达式,用于检查字符串的一部分并使用逗号提取数字,c#,regex,C#,Regex,我一直在搜索,并试图找出如何编写正则表达式来解决我的问题。到目前为止,我还不够。这就是我想做的。查找字符串中包含“Offset:”的部分,并提取其后面的数字。我的问题是这个数字可以从1到10000000。让我困惑的是逗号。欢迎任何帮助。 这是它可能看起来的一个示例。这是为c#准备的,以防万一,正如我读到的,regex可以有不同的口味。这是一个文本示例 "22:22:33.4643071","taskhostw.exe","4504","WriteFile","C:\Users\M O Shea\
"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
试试这个:
offset:\s*(?<offset>\d+(,\d+)*)
偏移量:\s*(?\d+(,\d+)*)
match.Groups[“offset”].Value
应该给出您的号码。如果我读对了,这就行了
Offset:[]+(10{0,2}(?:,0{3})| 10?(?:,0{3}){2})(?![,\d])
可读版本
Offset: [ ]+
( # (1 start)
1
0{0,2}
(?: ,0{3} )?
| 10?
(?: ,0{3} ){2}
) # (1 end)
(?! [,\d] )
var numberWithComma=someString.Replace(“偏移量:”,”)如果偏移部分位于长字符串的中间,则不需要正则表达式。数字后面还有更多的文字。您应该包括您输入的实际示例,以便我们能给您准确的答案。我怀疑正则表达式对于您的需求来说是完全多余的。字符串中只有字母字符吗?除了:
和,
之外,没有特殊字符?没有其他数字?我看到你最近的编辑,每个输入行的顺序都一样吗?意思是Offset
总是最后出现?@maccettura是的,但它满足条件。它不会给你数字,而是给你匹配的字符串。您仍然需要解析该字符串以获得一个数字,逗号稍微复杂了一点。这太完美了,谢谢。是的,我稍后会把它转换成一个数字。再次感谢:-)