正则表达式如何按“|”分割字符串

时间:2021-09-28 15:20:38
|| 数据样本:
XXXX|YYY|ZZZZ

分割要求:
按“|”进行分割,XXXX,YYY,ZZZZ为任意字符串(任意长度,不含“|”)。

得到的数据为:
XXXX
YYY
ZZZZ

请问正则表达式怎么写?

12 个解决方案

#1


[^|]*?[|]?

#2


[^|]*?[|]?

#3


 string test = "XXXX|YYY|ZZZZ";
            string[] result = Regex.Split(test, "[|]");
            result.ToList().ForEach(x => Console.WriteLine(x));

#4


为啥不用split?

#5


引用 4 楼 liucqa 的回复:
为啥不用split?

+1

#6


"XXXX|YYY|ZZZZ".Split('|')

#7


直接使用split('|')不是更简单嘛

#8


简单问题复杂化

#9


引用 6 楼 q107770540 的回复:
"XXXX|YYY|ZZZZ".Split('|')

++

#10


正则是不会帮你做字符串分割操作的,正则的作用就是匹配符合的字符串而已。
但是你这个可以用正则匹配出   所有 |  前后的字符串。

#11


引用 3 楼 guwei4037 的回复:
 string test = "XXXX|YYY|ZZZZ";
            string[] result = Regex.Split(test, "[|]");
            result.ToList().ForEach(x => Console.WriteLine(x));

+1

#12


引用 4 楼 liucqa 的回复:
为啥不用split?

因为我的这个正则表达式是动态构造出来的,我要进行分组匹配,用SPLIT只能分成数组,分后还要逐个匹配属于哪个表达式组,用正则既能分又能匹配,比较方便。

#1


[^|]*?[|]?

#2


[^|]*?[|]?

#3


 string test = "XXXX|YYY|ZZZZ";
            string[] result = Regex.Split(test, "[|]");
            result.ToList().ForEach(x => Console.WriteLine(x));

#4


为啥不用split?

#5


引用 4 楼 liucqa 的回复:
为啥不用split?

+1

#6


"XXXX|YYY|ZZZZ".Split('|')

#7


直接使用split('|')不是更简单嘛

#8


简单问题复杂化

#9


引用 6 楼 q107770540 的回复:
"XXXX|YYY|ZZZZ".Split('|')

++

#10


正则是不会帮你做字符串分割操作的,正则的作用就是匹配符合的字符串而已。
但是你这个可以用正则匹配出   所有 |  前后的字符串。

#11


引用 3 楼 guwei4037 的回复:
 string test = "XXXX|YYY|ZZZZ";
            string[] result = Regex.Split(test, "[|]");
            result.ToList().ForEach(x => Console.WriteLine(x));

+1

#12


引用 4 楼 liucqa 的回复:
为啥不用split?

因为我的这个正则表达式是动态构造出来的,我要进行分组匹配,用SPLIT只能分成数组,分后还要逐个匹配属于哪个表达式组,用正则既能分又能匹配,比较方便。