我有一个形式的字符串:
codename123
Run Code Online (Sandbox Code Playgroud)
是否有正则表达式可用于Regex.Split()
将字母部分和数字部分拆分为双元素字符串数组?
Jos*_*osh 45
我知道您要求使用该Split
方法,但作为替代方法,您可以使用命名捕获组:
var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)");
var match = numAlpha.Match("codename123");
var alpha = match.Groups["Alpha"].Value;
var num = match.Groups["Numeric"].Value;
Run Code Online (Sandbox Code Playgroud)
splitArray = Regex.Split("codename123", @"(?<=\p{L})(?=\p{N})");
Run Code Online (Sandbox Code Playgroud)
将在Unicode字母和Unicode数字之间分割.
如果你的字符串总是那种形式,那么正则表达式对此有点沉重.你可以用
"codename123".IndexOfAny(new char[] {'1','2','3','4','5','6','7','8','9','0'})
Run Code Online (Sandbox Code Playgroud)
以及对Substring的两次调用.
IMO,找到匹配项会容易得多,例如:
Regex.Matches("codename123", @"[a-zA-Z]+|\d+")
.Cast<Match>()
.Select(m => m.Value)
.ToArray();
Run Code Online (Sandbox Code Playgroud)
而不是使用Regex.Split
.
归档时间: |
|
查看次数: |
32985 次 |
最近记录: |