gpt4 book ai didi

c# - 在我的代码中引入 C# 6 的名称 (x) 而不是字符串文字的快速正则表达式

转载 作者:行者123 更新时间:2023-11-30 21:49:39 24 4
gpt4 key购买 nike

所以在我的代码中,我有很多地方都在使用 _SendPropertyChanged("FancyFuuBar");,我想将其替换为 _SendPropertyChanged(nameof(FancyFuuBar)) ; - 显然 FancyFuuBar 部分在任何地方都不一样,但我想要一个可以在任何地方解决这个问题的命令。

我“知道”这可以用正则表达式实现(实际上,我认为并假设它是,但我不知道)。

如何让正则表达式“记住”FancyFuuBar 名称并在替换实例中再次使用它?这可能在 Visual Studio 2015 中查找和替换吗?

如果使用单个正则表达式无法做到这一点,那么在不失去控制的情况下最好的方法是什么? IE。我希望首先能够将其限制为几个文件,最好能够单击“查找下一个”,然后决定是否要替换该实例。

我还不敢在所有代码上大放异彩。

最佳答案

你要的是backreferences持有相应的 capturing groups 捕获的值.

如果你没有任何复杂的惰性匹配情况,这很容易:

\b_SendPropertyChanged\("(.*?)"\);

并替换为 _SendPropertyChanged(nameof($1));

enter image description here

                                           V

enter image description here

这是与当前表达式匹配的结构:

\b_SendPropertyChanged\("(.*?)"\);
| ^$1-^ |
^--------------- Match Value ----^

我们匹配的内容将被替换为替换模式。捕获从 0 索引开始,第 0 组是整个匹配。 $1 是第一个 (...) 捕获的值。等等。

关于c# - 在我的代码中引入 C# 6 的名称 (x) 而不是字符串文字的快速正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36792225/

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