正则表达式拆分直到到达一个数字
本文关键字:一个 数字 拆分 正则表达式 | 更新日期: 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, "");