如何分割数字>字母或字母>数字

本文关键字:数字 何分割 分割 | 更新日期: 2023-09-27 18:04:13

我需要这样的东西:

test123tersre23 

变成这样:

{"test", "123", "tersre", "23"}

我见过很多使用组的解决方案,但我需要使用Regex。在这里分割(因为我已经在里面有一些其他自定义的分割逻辑)。

帮忙吗?

如何分割数字>字母或字母>数字

您可以使用lookaround断言进行分割:

string[] result = Regex.Split("test123tersre23", @"(?<='d)(?=[a-zA-Z])|(?<=[a-zA-Z])(?='d)");

这将对断言所查找的字符之间的空白(空格)进行分割。

如何:

Regex.split(input, "('d+)");

使用一组捕获括号,它应该输出任何数字序列作为分隔符,如本例所示。这对您打算如何解析做了一些假设,但无论如何,这似乎是正确的想法。


根据下面的评论,你正在寻找类似

的内容
@"($|%|'d+)"

这就是你要找的正则表达式:

' d + | ' d +

然后,使用正则表达式。匹配方法来获取结果。代码看起来像这样:
var input = "test123tersre23"
var pattern = @"'d+|'D+"
var results = Regex.Matches(input, pattern);

这个结果包含一个MatchCollection。循环遍历它们以获取值:

foreach(Match m in results)
{
    var current = m.Value;
}
编辑:

对不起,我没有看到你需要一个拆分方法的解决方案,我道歉。