[英]Regex - Replace Syntax - Backreferences
我試圖遍歷文件的所有行,並且對於每行包含一個“我正在嘗試將匹配項替換為該行本身,但末尾也添加一個”。
我正在從.NET / C#使用這樣的語法:
Regex re = new Regex("/\"/"); // without escaping would be /"/
re.Replace(" someAttr=\"some text here", "$0\"");
請嘗試以下操作:
Regex re = new Regex("\".*");
re.Replace(" someAttr=\"some text here", "$&\"");
首先,您需要丟失正則表達式周圍的斜線。
根據此.NET正則表達式參考頁 , $&
是整個匹配項的參考,而不是$0
。
同樣,使用當前方法,您將只用兩個連續的雙引號替換一個雙引號。 由於要在行末添加新的雙引號,因此需要使正則表達式與行末匹配,這就是.*
作用。
示例: http : //ideone.com/K5A7D
line="some text.d.sd..dsd.";
Regex r=new Regex("\".*");
r.Replace(line,"$0\"");
這也應該工作:
string line = "This is a string";
Regex re = new Regex("[\"].*");
re.Replace(line,"$0\"");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.