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

前端 未结 3 1019
情歌与酒
情歌与酒 2021-01-06 11:31

How to extract the number in the string \"Task(12345)\" with Regular Expression and Powershell? I tried the following, but no chance.

$file = gc myfile.txt
$         


        
相关标签:
3条回答
  • 2021-01-06 11:49

    Keep in mind that Select-String makes this a one-liner:

    PS> Select-String 'Task\((?<num>\d{1,5})\)' myfile.txt | 
            %{$_.matches[0].Groups['num'].value}
    
    0 讨论(0)
  • 2021-01-06 11:50

    If you want exactly 5 digits in there you could use:

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

    Otherwise for an arbitrary number of digits go with:

    ^Task\([\d{1,5}]+\)$
    
    0 讨论(0)
  • 2021-01-06 12:03

    Do you want to get all occurances in the file? If so I would do the following

    $r = "^Task\((\d+)\)$"
    $res = gc myFile.txt | 
      ?{ $_ -match $r } |
      %{ $_ -match $r | out-null ; $matches[1] }
    
    0 讨论(0)
提交回复
热议问题