powershell搜索功能与正则表达式

时间:2015-02-02 09:06:34

标签: powershell

文本文件内容为:

在此脚本中,我们有以下变量:

  1. $input_path保存我们要解析的输入文件的路径
  2. $output_file保存我们希望将结果存储在
  3. 中的文件的路径
  4. $regex用于保存匹配字符串时使用的正则表达式模式。
  5. select-string cmdlet包含各种参数,如下所示:

    • -Path,它将输入文件的完整路径作为输入
    • -Pattern,它将匹配过程中使用的正则表达式作为输入
    • AllMatches搜索多个匹配项(没有此参数会在找到第一个匹配项后停止)并通过管道传输到$.Matches然后$_.Value代表使用当前匹配项所有比赛的价值。

    代码:

    $replace_file=@{}
    $replace_text_file_path="EMS_checksystem_script\replace.txt"
    $replace_file= gc $replace_text_file_path
    $result=0
    $valr=read-host "please enter the key word"
    for($i=0;$i -lt$file_context.length;$i++)
    {
        $result=$replace_file[$i] -match $valr
    
        if( $result -eq 1)
        {
        $replace_file[$i] 
    
        }
    }
    

    结果:

    关键字:*pression

    Bad argument to operator '-match': parsing "*pression" - Quantifier {x,y} following nothing..
    At line:11 char:37
    +     $result=$replace_file[$i] -match <<<<  '*pression'
        + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
        + FullyQualifiedErrorId : BadOperatorArgument
    

    关键字:pression*

    关键字:press*on

    没有结果

    如何使用press*on*pression关键字进行搜索?

1 个答案:

答案 0 :(得分:0)

阅读正则表达式。你可以在这里测试正则表达式&gt; http://www.regexr.com/

您的关键字错误,请使用“。”匹配任何字符和“*”匹配任何数字的前一个字符。

PS C:\>'expression' -match ".*pression"
PS C:\>True