簡體   English   中英

正則表達式替換為占位符

[英]Regex.Replace with Placeholder

string output = @"D:\C_Drive\Desktop\z3-str\Z3-str.py";
            output = output.Replace(@"\", "/");
            output = Regex.Replace(output, @"(\w):/([^\\]*)", "/cygdrive/$(1)/$(2)");

對於上面的代碼,我希望輸出為

/cygdrive/D/C_Drive/Desktop/z3-str/Z3-str.py

但這給了我

/cygdrive/$(1)/$(2)

問題是什么

后向引用不起作用的原因是用括號將ID括起來。 您可以用花括號將它們括起來以消除任何歧義,但是由於只有2個,因此不需要它們。

只需使用$1$2/cygdrive/$1/$2

IDEONE演示

由於將所有\\替換為/ ,因此您也可以使用.*代替[^\\\\]* (您不再有\\ ,因此只需匹配字符串的其余部分):

output = Regex.Replace(output.Replace("\\", "/"), @"(\w):/(.*)", "/cygdrive/$1/$2");

另一個演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM