大家讲道理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,也就是對應的文字