我使用正则表达式查找并替换双引号内的字符串。下面是我使用的正则表达式。我得到的输出是新的是在正则表达式之前。
int portNum = 5969;
var input = File.ReadAllText(@"C:\Users\aaa\look.ts");
var outputFileText = Regex.Replace(input, @"baseurl(\s*)= (\s*).*?", @"baseurl = " + "\"http://localhost:" + portNum + "\"");
我得到的输出是
var baseurl = "http://localhost:5969/""http://www.google.com/";
预期输出
var baseurl= "http://localhost:5969/"
答案 0 :(得分:1)
你最后不应该使用贪婪量词.*?
,否则它会尽可能少地匹配。在这种情况下,由于.*?
之后没有任何内容,因此它将匹配0个字符。
为了让它发挥作用,让它贪婪地匹配直到结束:
int portNum = 5969;
var input = File.ReadAllText(@"C:\Users\aaa\look.ts");
var outputFileText = Regex.Replace(input, @"baseurl(\s*)= (\s*).*",
@"baseurl = " + "\"http://localhost:" + portNum + "\"");