我正在尝试遍历文件的所有行,并且对于包含“”的每一行,我试图用该行本身替换匹配项,但最后也用一个“”。
我在 .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", "$&\"");
首先,您需要丢失正则表达式周围的斜线。
根据this .NET regex reference page,$&
是对整个匹配项的引用,而不是$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\"");