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

本文关键字:字符串 删除 正则表达式 | 更新日期: 2023-09-27 18:18:57

是否有正则表达式模式可以从下面的字符串中删除.zip.ytu

werfds_tyer.abc.zip.ytu_20111223170226_20111222.20111222

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

这是使用 OP 要求的正则表达式的答案。

要使用正则表达式,请将替换文本放在匹配( )中,然后将该匹配项替换为任何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

只需使用String.Replace()

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

您不需要正则表达式即可进行完全匹配。

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

你为什么不干脆做上面呢?

真的不知道什么是".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());

使用字符串。取代:

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

这是我用于更复杂的重排的方法。 查看链接: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);