[英]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.