PowerShell RegEx尝试在匹配字符串后输出数字

时间:2014-07-10 11:51:35

标签: regex powershell

这是我的代码:

    $input_path = 'C:\powershell\capture.txt'
    $output_file = 'C:\powershell\raw.txt'
    $regex = "/(closed,\s\d+[.,\d.*]{0,})/"
    select-string -Path $input_path -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } > $output_file

我想要做的是输出"关闭后的总行数,"我有上面的正则表达式,因为我在regex101.com上测试了这个,但输出文件什么都没有。这是我试图从中提取的文档:

      [INFO] Agent 'Agent1' - started
      [INFO] TextDatasource 'Datasource1' - opened
      [INFO] TextDatasource 'Datasource1' - file opened: D:\python\domain_com.csv
      [INFO] Get URL: http://www.domain.com/index.php?option=com_recsite_front&Itemid=75
      [INFO] Init State - get URL: http://www.domain.com/index.php?option=com_recsite_front&Itemid=75
      [INFO] Page1 - next page element is not found for pattern: 'Page Pattern2'
      [INFO] TextDatasource 'Datasource1' - closed, 10,000 rows are stored
      [INFO] Agent 'Agent1' - stopped

因此输出文本文件将包含:10,000

并且还将10,000存储在变量中供以后使用..即$ rowcount =

由于

1 个答案:

答案 0 :(得分:0)

你去:

$rowcount=Select-String -Path .\in.txt -Pattern "closed,\s([\d,\.]+)" -AllMatches | % { $_.Matches } | % { $_.Groups[1].value}
echo $rowcount > $output_file

仅供参考:您的正则表达式中不需要/