首页 文章

如何使用正则表达式替换双引号括起来的字符串?

提问于
浏览
1

我使用正则表达式来查找和替换双引号内的字符串 . 下面是我使用的正则表达式 . 我得到的输出是新的在正则表达式之前放置 .

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/"

1 回答

  • 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 + "\"");
    

相关问题