代码之家  ›  专栏  ›  技术社区  ›  Tronald

如何用regex删除包含特定标识符的字符串中的数字

  •  1
  • Tronald  · 技术社区  · 7 年前

    我被困住了,希望你们中的一个雷杰克斯奇才有洞察力。我需要删除字符串中包含“pk”的任何内容。例如:

    string ts = "HELLO PK 2233.33 TEST PK11.1";
    //Should output as "HELLO PK 2233.33 TEST"
    
    string ns = Regex.Replace(ts, @"PK[\d]", string.Empty); 
    //currently outputting "HELLO PK 2233.33 TEST 1.1"
    

    我当前的regex几乎可以工作,但只从字符串的“pk”部分删除1位数字。

    1 回复  |  直到 7 年前
        1
  •  2
  •   revo shanwije    7 年前

    您还需要匹配尾随空格和小数部分:

    \s+PK\d+(?:\.\d+)?
    

    如果 \.\d+ 部分是强制的,请删除括括号:

    \s+PK\d+\.\d+