如何使用正则表达式保留分隔符

本文关键字:分隔符 保留 正则表达式 何使用 | 更新日期: 2023-09-27 18:36:10

如何使用正则表达式保留分隔符?

我尝试了以下方法

string str = "user1;user2;user3;user4";
            Regex regex = new Regex(@"'w;");    
            string[] splites = regex.Split(str);
            foreach (string match in splites)
            {
                Console.WriteLine("'{0}'", match);
                Console.WriteLine(Environment.NewLine);
            }

输出:

user1
user2
user3
user4

我想如下,但不要:

输出:

user1;
user2;
user3;
user4

如何使用正则表达式保留分隔符

Regex.Matches似乎更合适:

string str = "user1;user2;user3;user4";
Regex re = new Regex(@"'w+;?");
foreach (var match in re.Matches(str)) {
    Console.WriteLine(match);
}

演示运行


或者,您可以使用后瞻断言:

string str = "user1;user2;user3;user4";
Regex re = new Regex(@"(?<=;)");
foreach (var match in re.Split(str)) {
    Console.WriteLine(match);
}

演示运行

你可以尝试这样的事情

        string str = "user1;user2;user3;user4";
        MatchCollection matchs= Regex.Matches(str, @"['w]+;?");
        foreach (Match m in matchs)
        {
            Console.WriteLine(m.Value);
        }