用于提取String的某些部分的正则表达式

时间:2011-04-13 14:29:54

标签: c# .net regex

嘿我试图从字符串中提取某些信息。字符串看起来像

  

名称:music mix.mp3大小:2356KB

我想仅使用扩展名提取文件名 我对正则表达式知之甚少,所以我希望能在这里得到一些帮助。 谢谢!

3 个答案:

答案 0 :(得分:16)

请查看此示例:

const string str = "Name: music mix.mp3 Size: 2356KB";
var match = Regex.Match(str, "Name: (.*) Size:");
Console.WriteLine("Match: " + match.Groups[1].Value);

答案 1 :(得分:5)

使用正则表达式环视功能的解决方案。

String sourcestring = "Name: music mix.mp3 Size: 2356KB";
Regex re = new Regex(@"(?<=^Name: ).+(?= Size:)");
Match m = re.Match(sourcestring);
Console.WriteLine("Match: " + m.Groups[0].Value);

Example code here

答案 2 :(得分:2)

这是正则表达式

Name:\s*(?<FileName>[\w\s]+.\w{3})

如果文件名为空格

,则此正则表达式将组中的音乐mix.mp3返回
       string strRegex = @"Name:\s*(?<FileName>[\w\s]+.\w{3})";

        Regex myRegex = new Regex(strRegex);
        string strTargetString = @"Name: music mix.mp3 Size: 2356KB";

        Match myMatch = myRegex.Match(strTargetString);

        string fileName = myMatch.Groups["FileName"].Value;
        Console.WriteLine(fileName);