两个简单的正式表达式求教

piao2004 2010-09-16 05:23:05
一、判断是否手机号码的正式表达式。
需求比较简单,只需判断是否11位,以及以13、15、18开头则可。我的代码是:
            string Pattern = "^1[3|5|8][0-9]{9}$";
return Regex.IsMatch(num, Pattern);


但是,考虑到有时手机号码头会加上:+86、0、0086这又如何写呢?
我这样写却是不行:^[\+86|0|0086]?1[3|5|8][0-9]{9}$

二、如何使用正式表达式替换一个字符串的最后5位字符:
即:
string Source='AA00005';
string NewNum='00123';
想得到结果为:AA00123(即把Source的最后5位(无论是什么数字),都替换为NewNum

谢谢。
...全文
127 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang_winnie 2010-09-16
  • 打赏
  • 举报
回复
學習一下
vbverygood 2010-09-16
  • 打赏
  • 举报
回复
收葳一下!!
q107770540 2010-09-16
  • 打赏
  • 举报
回复
1.
^(86)*(\+86)*(0086)*0*(13|15|18)\d{9}$
-过客- 2010-09-16
  • 打赏
  • 举报
回复
1、
^((\+|00)86|0)?1[358][0-9]{9}$


2、
string Source = "AA00005";
string NewNum = "00123";
Regex reg = new Regex(@".{5}$");
string result = reg.Replace(Source, NewNum);
richTextBox2.Text = result;
piao2004 2010-09-16
  • 打赏
  • 举报
回复
谢谢lxcnn

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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