我有一批订单代码
MMY7570799
QW123234
RTY12312212
每个都有一到三个字符前缀,后跟一个数字。
如何进行拆分,以便使用正则表达式获取任何出现的字符和数字?
答案 0 :(得分:5)
此正则表达式将为您提供包含所需内容的2个命名捕获组(code
& number
):
(?<code>[A-Za-z]{1,3})(?<number>\d+)
答案 1 :(得分:4)
答案 2 :(得分:1)
您也可以使用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}
不是\p{N}
答案 3 :(得分:0)
嗯,你可以尝试一下LINQ,以防止一组字符后跟数字。
string original = "MMY7570799";
string characters = new string(s.TakeWhile(c => char.IsLetter(c)).ToArray());
string nums = original.Replace(characters, "");