认证0级讲师
我來解釋為什麼上面呼氪的正則表達式可以成功$number 把匹配的第number組替換成替換表達式,是在返回在模式匹配期間找到的所存儲的最近的九個部分。每當產生一個帶括號的成功匹配時,$1...$9 屬性的值就會被修改。在一個正規表示式模式中可以指定任意多個帶括號的子匹配,但只能儲存最新的九個
例如正規表示式/(w+)@(w+).(w+)/g 待匹配文字adress helloworld@gmail.com 這裡 = helloworld , S2 = gmail , =com
/(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,也就是對應的文字
知道答案了,Q群裡面一位大神教得:QSTR("(.*)") 替換成 QSTR(tr("$1"))
我來解釋為什麼上面呼氪的正則表達式可以成功
$number 把匹配的第number組替換成替換表達式,是在返回在模式匹配期間找到的所存儲的最近的九個部分。每當產生一個帶括號的成功匹配時,$1...$9 屬性的值就會被修改。在一個正規表示式模式中可以指定任意多個帶括號的子匹配,但只能儲存最新的九個
例如
正規表示式
/(w+)@(w+).(w+)/g
待匹配文字
adress helloworld@gmail.com
這裡
= helloworld , S2 = gmail , =com
replace中使用 $1 來引用所保存的第一個子匹配。如果有多個子匹配,則可以用 $2, $3 等繼續引用
例如
輸出結果: 01 012 03 05
用你的文字來說,中間的漢字也就替換成$1,每次替換成$1,也就是對應的文字
知道答案了,Q群裡面一位大神教得:QSTR("(.*)") 替換成 QSTR(tr("$1"))