首页新闻找找看学习计划

正则表达式?

0
悬赏园豆:30 [已解决问题] 解决于 2015-06-10 15:20

^(?:1[358]\\d{9}|\\d{3,4}-\\d{8,9})$

这个正则表达式怎么理解啊?求详解

无聊的小剑的主页 无聊的小剑 | 初学一级 | 园豆:142
提问于:2015-06-09 23:38
< >
分享
最佳答案
1

^代表匹配开始,$代表匹配结束,?:的意思是非获取匹配,1[358]\\d{9}代表1开头,第二位是3/5/8,接下去跟9位数字,

\\d{3,4}-\\d{8,9}代表区号是3或4位数字,后面跟8或9位的电话号码(但是号码真的有9位么?7为或8位吧?)

收获园豆:15
浅草青晨 | 小虾三级 |园豆:635 | 2015-06-10 08:45
其他回答(2)
0

这是判断 是否为手机号码或座机电话呀

收获园豆:5
Y2zz | 园豆:388 (菜鸟二级) | 2015-06-09 23:39

这个我知道,只是不明白?:1[358]代表是什么意思,还有就是^限制开头,$限制结尾,上面的正则表达式限制的开头是什么,限制结尾是什么

支持(0) 反对(0) 无聊的小剑 | 园豆:142 (初学一级) | 2015-06-09 23:44
0

“以1为开头加一个3或5或8,并以9位数字结束” 或 “以3至4位数字开头加一个 - ,并以8至9位数字结束”

?: 说明 括号里面的内容不被捕获,即不能使用 $1

收获园豆:10
Yu | 园豆:12944 (专家六级) | 2015-06-10 08:38

这个不能使用$1是什么意思??:不能获取我不是很懂?

支持(0) 反对(0) 浅草青晨 | 园豆:635 (小虾三级) | 2015-06-10 09:02

@浅草青晨: 捕获组

如果有使用过类似这样的:

string pattern="([a-z])([1-9])";

string text=Regex.Replace("a1","$2$1");

//text = 1a

如果这样:

string pattern="(?:[a-z])(?:[1-9])";

string text=Regex.Replace("a1","$2$1");

//text = a1

支持(0) 反对(0) Yu | 园豆:12944 (专家六级) | 2015-06-10 09:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册