正则表达式求助 马上结帖 !!!

xing_8888_good 2007-12-07 11:22:58
我要写一个正则表达式

比如我要获取一个页面的手机号码


打个比方

比如说有一个人填写了3个手机号码

mobile1:13425851111

mobile2:13425851112

mobile3:13425851111

但是这个里面有重复的

那么就是说如何用正则表达式过滤重复值??????

我要的结果是:13425851111 13425851112

如果没有重复的,那么全部抓取!
...全文
162 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dirt 2007-12-07
  • 打赏
  • 举报
回复
手机号是个11位数字的字符串,上面的表达式(\d{11})匹配一个手机号,后面的\1反向引用匹配前面的匹配结果,如果字符串能被这个表达式匹配,则说明有重复号码,号码是amt.Groups[1].Value
netnpc 2007-12-07
  • 打赏
  • 举报
回复
应该没有吧
xing_8888_good 2007-12-07
  • 打赏
  • 举报
回复
搞错了

Regex类
他有没有什么方法以及属性可以过滤掉重复值??????
dirt 2007-12-07
  • 打赏
  • 举报
回复
你确定看懂了这个表达式么?
xing_8888_good 2007-12-07
  • 打赏
  • 举报
回复
(\d{11}).*?\1

11111111111

这样匹配不到

除非

1111111111111111111111

这样才能够匹配到

11111111111

可是………………
  • 打赏
  • 举报
回复
同意用List<string>,可以判断如果存在就不加,不存在就加。
dirt 2007-12-07
  • 打赏
  • 举报
回复

用反向引用

Match amt = Regex.Match(Input, @"(\d{11}).*?\1");
//有重复
if (amt.Success)
listBox1.Items.Add(amt.Groups[1].Value);

王集鹄 2007-12-07
  • 打赏
  • 举报
回复
用List搞定也复杂不到哪去
List<string> vList = new List<string>();
string s= ...; // 这可以用正则取值
if (!vList.Contains(s)) vList.Add(s); // 判断没有存在才添加
WAKU 2007-12-07
  • 打赏
  • 举报
回复
用一个集合添加手机号不就搞定了吗?
dirt 2007-12-07
  • 打赏
  • 举报
回复
一起感叹。。
王集鹄 2007-12-07
  • 打赏
  • 举报
回复
小声地感叹一句:正则不是万能的。

路过。。。

110,502

社区成员

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

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

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