我想在 RegEx 模式中使用符号来查找匹配项,但我不想替换它们。这是用于 C# 中的类和命名空间操作。
例如:
MyNamespaceLib.EntityDataModelTests.TestsMyClassTests+MyInnerClassTests
必须替换为:
MyNamespaceLib.EntityDataModel.TestsMyClass+MyInnerClass
(注意,只有“Tests”出现在命名空间部分的末尾时才会被替换,而不是当它是类/命名空间名称的一部分时)
我已经设法找到匹配项的第一部分,但我正在努力将符号保留在替换的匹配项中。
到目前为止我有:
var input = "MyNamespaceLib.EntityDataModelTests.TestsMyClassTests+MyInnerClassTests";
var output = Regex.Replace(input, "Tests[.+]|$", "");
我试过使用非捕获组,但我怀疑它不适合我尝试使用它的方式。
谢谢!
最佳答案
所以您想要做的是替换匹配项不是,然后是 .
或 +
?使用 lookahead :
@"Tests(?![.+])"
关于c# - RegEx - 使用符号匹配但不替换它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14026233/