使用正则表达式按非数字和数字分割字符串

时间:2015-04-09 21:18:53

标签: c# .net regex string split

我看过几个相似的答案,但似乎都没有。当字母变为数字并返回时,我需要拆分字符串。诀窍是模式是可变的,意味着可以有任意数量的字母或数字分组。

例如

AB1000 => AB 1000
ABC1500 => ABC 1500
DE160V1 => DE 160 V 1
FGG217H5IJ1 => FGG 217 H 5 IJ 1
Etc.

2 个答案:

答案 0 :(得分:3)

你可以使用这样的正则表达式:

[A-Z]+|\d+

<强> Working demo

答案 1 :(得分:3)

如果要拆分字符串,可以采用lookarounds

string[] results = Regex.Split("FGG217H5IJ1", @"(?<=\d)(?=\D)|(?<=\D)(?=\d)");
Console.WriteLine(String.Join(" ", results)); //=> "FGG 217 H 5 IJ 1"