我有个字符串比如a="abcdanmcadedcdeefako"那么我怎么能得到一个数组,其中数组的各项是字母a和c的中间字符,即第一项是"b"第二项"nm"第三项"ded"?求大神赐教,不知道是不是和Split有关?
static void Main(string[] args)
{
string a = "abcdanmcadedcdeefako";
Regex reg = new Regex("(?i)(?<=a)[^a]*(?=c)");
MatchCollection mc = reg.Matches(a);
foreach (Match m in mc)
{
Console.WriteLine(m.Value);
}
}
你可以先用replace把a和c换成空格" ",然后用split,把空格错位分隔符。
由于可能有a和c连续出现的情况,你可能会有连续多个空格出现,所以用split的时候记得检查你的得到的字符串是不是空的。
foreach (string s in Regex.Matches(a, "a([a-z])+?c").Select(x => x.Groups[0].Value))
...
string a = "abcdanmcadedcdeefako";
a = a.Replace('a', ' ').Trim(); //去掉前后空格
a = a.Replace('c', ' ').Trim(); //去掉前后空格
string[] str = a.Split(' ') ;
for (int i=0; i<str.Length ; i++)
{
if (str[i].Trim() != "") //中间替换后有空格
{
MessageBox.Show(str[i]);
}
}
danielinbiti大神给的答案很棒。在JAVA中也可以