求救,关于字符串处理。

ziyeage 2012-07-10 03:44:39
有一不定长字符串,可能有1位,也可能有10位。组成为数字和字母。如0012A23B,也可能为12A2356BC,现需取除掉最后的字母后,的最后数字。既

0012A23B 取出 23
12A2356BC 取出2356
实在不知如何下手了。
...全文
149 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
aspan 2012-07-10
  • 打赏
  • 举报
回复
给个思路你,代码你可以自己写:
先从字符的最后一个字符开始往前检查,
n=0; s="";
for (int i=str.Length;i>0;i--)
{
if (str[i]>=0||str[i]<=9) //ascii值为数字
{
n=1; s=str[i]+s;
}else {
if (n==1) break;
}
}
lizhengdao1314 2012-07-10
  • 打赏
  • 举报
回复
Regex reg = new Regex(@"\d+");
MatchCollection mc = reg.Matches("0012A23B");
if(mc.Count>0) string test = mc[mc.Count - 1].Value;
lizhengdao1314 2012-07-10
  • 打赏
  • 举报
回复
Regex reg = new Regex(@"\d+");
MatchCollection mc = reg.Matches("0012A23B");
string test = mc[mc.Count - 1].Value;
lizhibin11 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

还有可能是什么?
[/Quote]
还有可能是ab123?
win_perfect 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
public string Last(string str)
{
return System.Text.RegularExpressions.Regex.Split(str, @"\D").Where(t => t.Trim() != "").Last();
}
[/Quote]

正解
win_perfect 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
public string Last(string str)
{
return System.Text.RegularExpressions.Regex.Split(str, @"\D").Where(t => t.Trim() != "").Last();
}
[/Quote]

正解
  • 打赏
  • 举报
回复
string tempStr = "12A2356BC";
Regex _reg = new Regex(@"(?i)\d+(?=[a-z]*?$)");
Match m = _reg.Match(tempStr);
string value = m.Value;//2356
  • 打赏
  • 举报
回复
public string Last(string str)
{
return System.Text.RegularExpressions.Regex.Split(str, @"\D").Where(t => t.Trim() != "").Last();
}
孟子E章 2012-07-10
  • 打赏
  • 举报
回复
还有可能是什么?
ziyeage 2012-07-10
  • 打赏
  • 举报
回复
还有可能是纯数字。。。
孟子E章 2012-07-10
  • 打赏
  • 举报
回复
String xx = "12A2356BC";
int a = xx.IndexOf("A");
int b = xx.IndexOf("B");
xx = xx.Substring(a+1, b - a-1);
Response.Write(xx);
孟子E章 2012-07-10
  • 打赏
  • 举报
回复
String xx = "12A2356BC";
int a = xx.IndexOf("A");
int b = xx.IndexOf("B");
xx = xx.Substring(a+1, b - a-1);
Response.Write(xx);
ziyeage 2012-07-10
  • 打赏
  • 举报
回复
字母只是举例所以用A B,实际可能为26个英文字母。。。
ziyeage 2012-07-10
  • 打赏
  • 举报
回复
呃,忘了说,还有一种可能,就是123AB
孟子E章 2012-07-10
  • 打赏
  • 举报
回复
你先找到A的位置,再找到B的位置不是就可以了吗》?》》

String xx = "12A2356BC";
int a = xx.IndexOf("A");
int b = xx.IndexOf("B");
xx = xx.Substring(a + 1, b - a - 1);
Response.Write(xx);

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧