C# Regex.Split的正确模式
在C#中,我接收到字符串,例如:C# Regex.Split的正确模式,c#,regex,C#,Regex,在C#中,我接收到字符串,例如: ABC123456DEF 123456 ABC123456 123456DEF 我想做的是将数字从字符串中分割出来,因此理想情况下,上面的输出是: “ABC”、“123456”、“DEF” “123456” “ABC”,“123456” “123456”、“DEF” 是否有人能建议使用Regex.Split处理此问题的最佳方法 多谢各位 保罗 编辑: 由于我被降价了,我想我最好展示一下我已经拥有的东西。这只带来字母数字的,而不是数字的: string p
- ABC123456DEF
- 123456
- ABC123456
- 123456DEF
- “ABC”、“123456”、“DEF”
- “123456”
- “ABC”,“123456”
- “123456”、“DEF”
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);
}
}
}
试试这个:
//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);
}
}
}
另一个答案中的Regexp.match方法可能更好,但是如果您必须使用Regexp.split,那么以下模式应该可以工作
(?<=[A-Z])(?=[0-9])|(?<=[0-9])(?=[A-Z])
(?另一个答案中的Regexp.match方法可能更好,但是如果您必须使用Regexp.split,那么以下模式应该可以工作
(?<=[A-Z])(?=[0-9])|(?<=[0-9])(?=[A-Z])
(?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();
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();
你在用哪种语言?对不起,C#。我会修正这个问题。你为什么不尝试匹配而不是拆分?[A-Z]+[0-9]+
你做了什么努力?我只想匹配([0-9]+)|([A-Z]+),不需要Regex.Split
这里你在运行哪种语言?对不起,C#。我会修正这个问题。你为什么不尝试匹配而不是拆分?[A-Z]+[0-9]+
你做了什么?我只需要匹配([0-9]+)([A-Z]+)
,不需要Regex.Split