正则表达式:查找字母结束和数字开始的位置


Regex: Find where letters end and numbers start

我有像MA14MD22b这样的字符串,我必须找到MA14之间的索引。

Try with:

(?<=[A-Z])(?='d)|(?<='d)(?=[A-Z])

演示

添加()用于组捕获,以显示与之匹配的索引。

Simple regex:

string s = "ABC142";    
var r= new Regex("^([A-Za-z]*)(''d*)$");
var m = r.Match(s);
m.Groups[1].Index.Dump();  # index of the match
m.Groups[1].ToString().Dump();
m.Groups[2].Index.Dump(); # index of the match
m.Groups[2].ToString().Dump();

将打印

0
ABC
3
142

(Dump来自LINQPAd,你可以使用Console.WriteLine等)