如何使用Regex从字符串中删除模式

时间:2013-10-24 17:20:27

标签: c# regex replace

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

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

3 个答案:

答案 0 :(得分:11)

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

如果路径后面跟着!和其他一些你可以使用的词

input=Regex.Replace(input,@"'[^']+'(?=!\w+)","");

答案 1 :(得分:2)

好吧,如果!总是在你建议的字符串中,这个正则表达式!(.*)?\(会得到你想要的。这是一个Regex 101来证明它。

要使用它,您可能会这样做:

var result = Regex.Replace(myString, @"!(.*)?\(");

答案 2 :(得分:-1)

如果处理文件路径,则所需的功能位于System.Path。

那里有很多方法,但这是其中一个具体目的。