【问题标题】:Regular expression for replacing the strings in powershell用于替换powershell中的字符串的正则表达式
【发布时间】:2014-06-24 07:39:19
【问题描述】:

我有下面给出的某些字符串

PS C:\Users> $S1="PS CUT (ZIP ONLY),  ALWAYS chose for MARTIO"
PS C:\Users> $s2="ZINO-IAS CUT"
PS C:\Users> $s3="ZINO-IPS CUT 2"
PS C:\Users> $s4="ZINO-IAS CUT4"
PS C:\Users> $s5="ZINO-IPS"

我想用 CUT 本身替换上面的字符串,如下所示

PS
ZINO-IAS
ZINO-IPS2
ZINO-IAS4
ZINO-IPS

请注意,如果单词 CUT 后面有数字,我们不会删除它。

我尝试了以下代码,但它不起作用

PS C:\Users> $s5 -replace "CUT\s*\w*",""

【问题讨论】:

    标签: .net regex powershell


    【解决方案1】:

    您需要的正则表达式是:

    "\s*CUT\s*(\d+)?.*","`$1"
    

    它检查 CUT 之后的可选数字和任何空格并将其用作替换(由 $1 表示)。如果数字不存在,则将整个匹配项替换为空字符串。

    结果:

    [PS]> $s1 -replace "\s*CUT\s*(\d+)?.*","`$1"
    PS
    [PS]> $s2 -replace "\s*CUT\s*(\d+)?.*","`$1"
    ZINO-IAS
    [PS]> $s3 -replace "\s*CUT\s*(\d+)?.*","`$1"
    ZINO-IPS2
    [PS]> $s4 -replace "\s*CUT\s*(\d+)?.*","`$1"
    ZINO-IAS4
    [PS]> $s5 -replace "\s*CUT\s*(\d+)?.*","`$1"
    ZINO-IPS
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      • 2018-07-13
      • 2016-11-27
      • 2015-11-30
      • 2021-11-29
      相关资源
      最近更新 更多