将字符串分解为 array/list bij 字母和非字母字符

Break down a string into an array/list bij alphabet and non-alphabet characters

我需要根据设置的字母字符和非字母字符将字符串分解为字符集数组或列表。

例如:

字符串=-"Hello12$th'ere!@4"

要求的结果 = [-"][你好][12$][th]['][ere][!@4]

有没有人知道如何获得所需的结果?我试图通过搜索 regex.split 解决方案来实现这一点,但找不到适合我需要的表达式。

这个简单的正则表达式可以解决问题:([a-zA-Z]+|[^a-zA-Z]+)

测试一下 here

您可以将 Regex.Split 与使用查找表达式的字母和非字母之间的边界的模式一起使用:

var t=Regex.Split(s, @"(?<=[a-zA-Z])(?=[^a-zA-Z])|(?<=[^a-zA-Z])(?=[a-zA-Z])");

Demo.