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

Using regex to split string by Non Digit and Digit

我看到了一些相似的答案,但 none 似乎已经足够了。当字母变为数字并返回时,我需要拆分字符串。诀窍是模式是可变的,这意味着可以有任意数量的字母或数字分组。

例如

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

您可以像这样使用正则表达式:

[A-Z]+|\d+

Working demo

如果要拆分字符串,一种方法是 lookarounds:

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