在C#中,我接收的字符串如下:
我想要做的是从字符串中分割数字,理想情况下,上面的输出将是:
有人可以使用Regex.Split建议处理此问题的最佳方法吗?
谢谢。
保罗。
编辑:
当我被标记下来时,我想我会更好地展示我已经拥有的东西。这只会带来字母数字,而不是数字&#39>:
string pattern = @"\d+";
string barcode = "ABC123456DEF";
string[] result = Regex.Split(barcode, pattern);
答案 0 :(得分:3)
试试这个:
//Based on:
//.NET 4.5
//Program that uses Match, Regex: C#
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
String subject = "ABC123456DEF\n123456\nABC123456\n123456DEF"
Regex regex = new Regex(@"([a-zA-Z]+)|([0-9]+)");
foreach (Match match in regex.Matches(subject))
{
MessageBox.Show(match.Value);
}
}
}
答案 1 :(得分:1)
Regex.Split正是你应该在这里使用的:
using System.Text.RegularExpressions;
using System.Linq;
string pattern = @"(\d+)";
string barcode = "ABC123456DEF";
string[] result = Regex.Split(barcode, pattern).Where(s => !string.IsNullOrEmpty(s)).ToArray();
答案 2 :(得分:0)
另一个答案中的Regexp.match方法可能更好,但是如果您必须使用Regexp.split,则以下模式应该有效;
(?<=[A-Z])(?=[0-9])|(?<=[0-9])(?=[A-Z])