Как извлечь число в строке «Задача (12345)» с помощью регулярных выражений и Powershell? - PullRequest
4 голосов
/ 16 июля 2009

Как извлечь число в строке «Задача (12345)» с помощью регулярных выражений и Powershell? Я попробовал следующее, но без шансов.

$file = gc myfile.txt
$matches = ([regex]"Task\(\d{1,5}\)").matches($file)
# Get a list of numbers

Может ли кто-нибудь помочь мне найти правильное регулярное выражение?

Ответы [ 3 ]

7 голосов
/ 17 июля 2009

Имейте в виду, что Select-String делает это однострочным:

PS> Select-String 'Task\((?<num>\d{1,5})\)' myfile.txt | 
        %{$_.matches[0].Groups['num'].value}
5 голосов
/ 16 июля 2009

Хотите получить все вхождения в файле? Если это так, я бы сделал следующее

$r = "^Task\((\d+)\)$"
$res = gc myFile.txt | 
  ?{ $_ -match $r } |
  %{ $_ -match $r | out-null ; $matches[1] }
0 голосов
/ 16 июля 2009

Если вы хотите, чтобы там было ровно 5 цифр, вы можете использовать:

^Task\([\d{1,5}]{5}\)$

В противном случае для произвольного числа цифр используйте:

^Task\([\d{1,5}]+\)$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...