gpt4 book ai didi

regex - Visual Studio 正则表达式查找/替换通配符

转载 作者:行者123 更新时间:2023-12-02 01:49:20 25 4
gpt4 key购买 nike

我在 visual studio 中使用查找/替换选项。

我有这个:

new GeoState { Name = "Arizona", Abbreviation = "AZ", Country = "US" },

并且想把它改成这样:

new GeoState { Abbreviation = "AZ", Country = "US" },

对于我文件中出现的所有状态。有效删除 Name 属性。

我正在运行的正则表达式查找/替换表达式是这样的:

查找:

new GeoState { Name = ".*",

替换:

new GeoState {

但是,在上面的示例中,它发现了以下内容:

new GeoState { Name = "Arizona", Abbreviation = "AZ",

改成这样:

new GeoState { Country = "US" },

为什么 Abbreviation = "AZ", 包含在选择中?它应该在通配符之后的 ", 的第一个实例处终止。

最佳答案

模式是贪心的:".*",

这与 Name 匹配,但继续到 "AZ", 因为它也匹配。它到此为止,因为 Abbreviation 是最后一个以逗号结尾的东西。

要使其非贪婪使用:".*?" 额外的 ? 意味着它现在匹配零个或多个字符,但少至可能。所以现在当它遇到第一个以逗号结尾的双引号项目时,它会正确地停止在 "Arizona",

或者,您可以使用 new GeoState { Name = "[^"]+", - 这里的 [^"]+ 部分是一个否定字符类,将匹配任何不是双引号的字符,因此它将正确地停在第一组结束双引号处。

关于regex - Visual Studio 正则表达式查找/替换通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23817049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com