10

我想从字符串中找到路径并删除它们,例如string1 = "'c:\a\b\c'!MyUDF(param1, param2,..) + 'c:\a\b\c'!MyUDF(param3, param4,..)...",我想要一个正则表达式来查找模式'[some path]'!MyUDF,然后删除'[path]'。谢谢

编辑例如 input string1 ="'c:\a\b\c'!MyUDF(param1, param2,..) + 'c:\a\b\c'!MyUDF(param3, param4,..)"; 预期输出 "MyUDF(param1, param2,...) + MyUDF(param3, param4,...)" 其中 MyUDF 是函数名称,因此它仅包含字母

4

3 回答 3

28
input=Regex.Replace(input,"'[^']+'(?=!MyUDF)","");

如果路径后面跟着!还有一些你可以使用的词

input=Regex.Replace(input,@"'[^']+'(?=!\w+)","");
于 2013-10-24T17:24:22.383 回答
1

好吧,如果!按照您的建议始终在字符串中,则此正则表达式!(.*)?\(将为您提供所需的内容。这是一个正则表达式 101来证明它。

要使用它,您可以执行以下操作:

var result = Regex.Replace(myString, @"!(.*)?\(");
于 2013-10-24T17:24:34.163 回答
-1

如果您正在处理文件路径,您想要的功能在 System.Path 中。

那里有很多方法,但这是它的特定目的之一。

于 2013-10-24T17:22:46.233 回答