【发布时间】:2026-02-08 18:15:01
【问题描述】:
假设我有一个接受字符串的函数,所以在代码中它被称为:
myObject.AddMyString("Something")
我想搜索整个解决方案并找到.AddMyString() 函数的所有调用,但我不想多次看到与参数相同的字符串。
如果我搜索:.AddMyString\(".*"\) 并且当我传递确切的字符串“Something”时有很多地方,那么当按下 find next 时,它会显示许多类似的地方。我只想查看在代码中传递给此函数的所有唯一字符串。
@Edit:我认为我的问题已经足够清楚了。
假设我有这样的代码:
var myObject = new MyClass();
myObject.AddMyString("Test");
myObject.AddMyString("Computer");
myObject.AddMyString("Printer");
[...]
myObject.AddMyString("Scanner");
myObject.AddMyString("Test");
[...]
myObject.AddMyString("Computer");
myObject.AddMyString("Speakers");
我想使用正则表达式,这样我就只有 5 个匹配项。它只会匹配第一次出现的“Test”或“Computer”字符串。
当我使用正则表达式 .AddMyString\(".*"\) 时,它会找到 7 个匹配项而不是 5 个。
【问题讨论】:
-
我认为您需要为此使用无限环顾,例如:*.com/a/45995312/4122889 事实上,当我针对您的样本进行测试时,特定的正则表达式已经达到了您想要的 90%。
-
使用“AddMyString”搜索将结果复制到文件中,使用“Set”方法迭代该文件,以仅保留每个字符串文件的第一个唯一结果
标签: c# regex visual-studio