正则表达式拆分直到到达一个数字

本文关键字:一个 数字 拆分 正则表达式 | 更新日期: 2023-09-27 18:18:18

我有一批订单代码

MMY7570799 
QW123234 
RTY12312212

每个都有一个1到3个字符的前缀,后跟一个数字。

我如何做一个分裂,所以我得到字符和数字的任何事件使用正则表达式?

正则表达式拆分直到到达一个数字

这个正则表达式会给你2个命名的捕获组(code &number)包含您想要的内容:

(?<code>[A-Za-z]{1,3})(?<number>'d+)

下面的模式将捕获第一组中的字符和第二组中的数字:

^([A-Z]{1,3})('d+)$

您可以在这里看到它的作用:http://regexr.com?2vh9c

您也可以使用Regex.Split()

String s = "MMY7570799";
String[] Result = Regex.Split(s, @"(?<='P{N})(?='p{N})");

当左边((?<='P{N}))没有一个数字('P{N}),右边((?='p{N}))没有一个数字('p{N})时,

'p{N}'p{Number}:任何脚本中的任何类型的数字字符。看到regular-expression.info

'P{N} is NOT 'p{N}

你可以试试你的手在LINQ如果它是一致的,一组字符之后会跟着数字。

string original = "MMY7570799";
string characters = new string(s.TakeWhile(c => char.IsLetter(c)).ToArray());
string nums = original.Replace(characters, "");