如何使用正则表达式和Powershell提取字符串“Task(12345)”中的数字?我尝试了以下,但没有机会。
$file = gc myfile.txt
$matches = ([regex]"Task\(\d{1,5}\)").matches($file)
# Get a list of numbers
有人可以帮我找到正确的正则表达式吗?
答案 0 :(得分:7)
请记住,Select-String使这个单行:
PS> Select-String 'Task\((?<num>\d{1,5})\)' myfile.txt |
%{$_.matches[0].Groups['num'].value}
答案 1 :(得分:5)
您想要在文件中出现所有内容吗?如果是这样,我会做以下
$r = "^Task\((\d+)\)$"
$res = gc myFile.txt |
?{ $_ -match $r } |
%{ $_ -match $r | out-null ; $matches[1] }
答案 2 :(得分:0)
如果你想要5位数字,你可以使用:
^Task\([\d{1,5}]{5}\)$
否则对于任意位数,请使用:
^Task\([\d{1,5}]+\)$