正则表达式从字符串中删除字符串

时间:2011-12-27 19:04:37

标签: c# regex

想知道我是否可以在下面编写正则表达式,目前正在使用String.Remove(17,7)

string txt = "werfds_tyer.abc.zip.ytu_20111223170226_20111222.20111222";

我想从上面的字符串

中删除.zip.ytu

6 个答案:

答案 0 :(得分:9)

只需使用String.Replace()

即可
String.Replace(".zip.ytu", ""); 

完全匹配不需要正则表达式。

答案 1 :(得分:4)

以下是OP询问的使用正则表达式的答案。 ;-)

要使用正则表达式,请将替换文本放在match()中,然后将该匹配替换为nothing(string.empty):

string text = @"werfds_tyer.abc.zip.ytu_20111223170226_20111222.20111222";
string pattern = @"(\.zip\.ytu)";

Console.WriteLine( Regex.Replace(text, pattern, string.Empty ));

// Outputs 
// werfds_tyer.abc_20111223170226_20111222.20111222

HTH

答案 2 :(得分:3)

txt = txt.Replace(".zip.ytu", "");

为什么不简单地在上面做?

答案 3 :(得分:2)

使用string.Replace:

txt = txt.Replace(".zip.ytu", "");

答案 4 :(得分:2)

不知道什么是“.zip.ytu”,但如果你不需要完全匹配,你可能会使用类似的东西:

string txt = "werfds_tyer.abc.zip.ytu_20111223170226_20111222.20111222";

Regex mRegex = new Regex(@"^([^.]*\.[^.]*)\.[^.]*\.[^_]*(_.*)$");
Match mMatch = mRegex.Match(txt);

string new_txt = mRegex.Replace(txt, mMatch.Groups[1].ToString() + mMatch.Groups[2].ToString());

答案 5 :(得分:0)

这是我用于更复杂的repaces的方法。查看链接:http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.replace(v=vs.110).aspx以获取正则表达式替换。我也在下面添加了代码。

  string input = "This is   text with   far  too   much   " + 
                 "whitespace.";
  string pattern = "\\s+";
  string replacement = " ";
  Regex rgx = new Regex(pattern);
  string result = rgx.Replace(input, replacement);

  Console.WriteLine("Original String: {0}", input);
  Console.WriteLine("Replacement String: {0}", result);