提取两个字符之间的字符串?

mr_*_*air 4 .net c# string visual-studio-2010

我想在之间提取电子邮件ID < >

例如.

输入字符串: "abc" <abc@gmail.com>; "pqr" <pqr@gmail.com>;

输出字符串: abc@gmail.com;pqr@gmail.com

L.B*_*L.B 7

string input = @"""abc"" <abc@gmail.com>; ""pqr"" <pqr@gmail.com>;";
var output = String.Join(";", Regex.Matches(input, @"\<(.+?)\>")
                                    .Cast<Match>()
                                    .Select(m => m.Groups[1].Value));
Run Code Online (Sandbox Code Playgroud)


Fra*_*pré 5

没有正则表达式,你可以使用这个:

public static string GetStringBetweenCharacters(string input, char charFrom, char charTo)
    {
        int posFrom = input.IndexOf(charFrom);
        if (posFrom != -1) //if found char
        {
            int posTo = input.IndexOf(charTo, posFrom + 1);
            if (posTo != -1) //if found char
            {
                return input.Substring(posFrom + 1, posTo - posFrom - 1);
            }
        }

        return string.Empty;
    }
Run Code Online (Sandbox Code Playgroud)

进而:

GetStringBetweenCharacters("\"abc\" <abc@gmail.com>;", '<', '>')

你会得到

abc@gmail.com