[英]Correct pattern for Regex.Split
在C#中,我收到的字符串如下:
我想做的是从字符串中拆分数字,因此理想情况下,上述输出将是:
请问有人能够建议使用Regex.Split处理此问题的最佳方法吗?
谢谢。
保罗。
编辑:
由于我被打分,我以为我最好展示自己已经拥有的东西。 这只会带来字母数字的,而不是数字的:
string pattern = @"\d+";
string barcode = "ABC123456DEF";
string[] result = Regex.Split(barcode, pattern);
尝试这个:
//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);
}
}
}
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();
另一个答案中的Regexp.match方法可能更好,但是,如果您绝对必须使用Regexp.split,则以下模式应该有效;
(?<=[A-Z])(?=[0-9])|(?<=[0-9])(?=[A-Z])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.