搜尋

首頁  >  問答  >  主體

c++ - 如何查找和替换这段文本???

PHP中文网PHP中文网2804 天前765

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-04-17 12:08:25

    我來解釋為什麼上面呼氪的正則表達式可以成功
    $number 把匹配的第number組替換成替換表達式,是在返回在模式匹配期間找到的所存儲的最近的九個部分。每當產生一個帶括號的成功匹配時,$1...$9 屬性的值就會被修改。在一個正規表示式模式中可以指定任意多個帶括號的子匹配,但只能儲存最新的九個

    例如
    正規表示式/(w+)@(w+).(w+)/g
    待匹配文字adress helloworld@gmail.com
    這裡 = helloworld , S2 = gmail , =com

    replace中使用 $1 來引用所保存的第一個子匹配。如果有多個子匹配,則可以用 $2, $3 等繼續引用
    例如

    public static void Main()
    { 
     string s = "1 12 3 5";
     s = Regex.Replace(s,@"(\d+)(?#这个是注释)","0",RegexOptions.Compiled|RegexOptions.IgnoreCase);
     Console.WriteLine(s);
     Console.ReadLine();
     }

    輸出結果: 01 012 03 05

    用你的文字來說,中間的漢字也就替換成$1,每次替換成$1,也就是對應的文字

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 12:08:25

    知道答案了,Q群裡面一位大神教得:QSTR("(.*)") 替換成 QSTR(tr("$1"))

    回覆
    0
  • 取消回覆