如何使用Powershell Regex提取数字列表?

时间:2013-12-11 00:31:53

标签: regex powershell

我的问题类似于下面的问题,但我想更复杂。

How to extract the number in the string “Task(12345)” with Regular Expression and Powershell?

我需要从中提取数字的文字如下:

************************
 multi-line bulk texts 
************************
Change 11111 on 2013/12/09 by someone
************************
 multi-line bulk texts 
************************
Change 22222 on 2013/12/09 by someone
************************
 multi-line bulk texts 
************************
Change 33333 on 2013/12/09 by someone
************************
 multi-line bulk texts 
************************
Change 33333 on 2013/12/09 by someone
************************
 multi-line bulk texts 
************************
...[etc. same pattern]

批量文本可以包含任何字符,但我对它不感兴趣。我需要提取的是更改号码(11111,22222,...)并将它们存储在变量或输出到文本文件中。

有人可以指导我完成吗?我已经测试了一堆正则表达式,但还没有运气:(

谢谢,

3 个答案:

答案 0 :(得分:0)

我不熟悉.net或powershell,但你可以使用这个正则表达式:

(\d)\1+

或者如果数字总是这个长度

(\d)\1{4}

请查看此网站以获取有关此特定表达的说明。 http://regex101.com/r/gN9vM4 也适用于尝试新的东西

答案 1 :(得分:0)

除非文件很大,否则您可以使用链式匹配-replace操作立即执行整个文件:

$regex = '^Change\s(\d+)\son.+'
(get-content file.txt -r 0) -match $regex -replace $regex,'$1'

答案 2 :(得分:0)

这样做的方法很多......我建议如下:

\d+(?=.*\d{4}(?:\/\d{2})*\sby\s\w+)

比赛结束后,由哪人检查“2013/12/09”。

相关问题