1

我正在尝试遍历文件的所有行,并且对于包含“”的每一行,我试图用该行本身替换匹配项,但最后也用一个“”。

我在 .NET/C# 中使用这样的语法:

Regex re = new Regex("/\"/"); // without escaping would be /"/
re.Replace(" someAttr=\"some text here", "$0\"");
4

3 回答 3

2

尝试以下操作:

Regex re = new Regex("\".*");
re.Replace(" someAttr=\"some text here", "$&\"");

首先,您需要丢失正则表达式周围的斜线。

根据this .NET regex reference page$&是对整个匹配项的引用,而不是$0.

同样使用您当前的方法,您只需用两个连续的双引号替换一个双引号。由于您想将新的双引号添加到行尾,您需要使您的正则表达式匹配到行尾,这就是它.*所做的。

示例:http: //ideone.com/K5A7D

于 2012-08-09T16:12:23.453 回答
0
line="some text.d.sd..dsd.";    
Regex r=new Regex("\".*");
r.Replace(line,"$0\"");
于 2012-08-09T16:36:43.017 回答
-1

这也应该有效:

string line = "This is a string";

Regex re = new Regex("[\"].*");
re.Replace(line,"$0\"");
于 2012-08-09T16:22:31.200 回答