首页 新闻 会员 周边 捐助

请问各位这个正则表达式怎么写?

0
悬赏园豆:20 [已解决问题] 解决于 2013-12-05 14:38

用C#正则 将手机号码开头的0去掉,如0138580058=》138580058

001385555454=>1385555454,谢谢了。

王俊1234的主页 王俊1234 | 初学一级 | 园豆:57
提问于:2013-09-22 23:18
< >
分享
最佳答案
1

string phoneStr = "013838383838";
string mc = Regex.Match(phoneStr,"[1-9]{1}[0-9]*").ToString();

号码只取一次,去掉开头的0就从要的第一个字符开始匹配1-9,后面的直接全部获取,王俊?难道你是武汉毕业的?我们班以前就有两个王俊,一个叫大王俊。。。。。呵呵,不会是遇到同学吧?

收获园豆:20
~峰~ | 初学一级 |园豆:120 | 2013-09-22 23:58
其他回答(2)
0

这个不用正则表达式也能实现,取子字符串,后10位即可

var = str.SubString(str.Length - 10)

如上代码,我这里没有环境,也许写的不对,反正就这个意思,O(∩_∩)O~

会长 | 园豆:12461 (专家六级) | 2013-09-22 23:21

如果用正则怎么写,谢谢了。还在加班,苦逼。。。。

支持(0) 反对(0) 王俊1234 | 园豆:57 (初学一级) | 2013-09-22 23:23

有可能电话号码以0开头,也有可能以00或000开头。这个需要写三种情况,如果用正则最简单方便。

支持(0) 反对(0) 王俊1234 | 园豆:57 (初学一级) | 2013-09-22 23:27

如果用JS正则是:

var str = "0013801020304";
//var str = "abcbc";
var test = str.replace(/(0)*/, "");

这个JS正则转换C#正则怎么转换呢?

支持(0) 反对(0) 王俊1234 | 园豆:57 (初学一级) | 2013-09-22 23:28

知道了,  var sss = Regex.Replace("00013895105800", @"\b(0)*", string.Empty, RegexOptions.RightToLeft);不过还是谢谢你了。

支持(0) 反对(0) 王俊1234 | 园豆:57 (初学一级) | 2013-09-22 23:32

@王俊1234: s/^0/^                           只能说好像见过,没学过

支持(0) 反对(0) distric10 | 园豆:200 (初学一级) | 2013-09-22 23:35
0
 var p = "001385555454";
 p = p.TrimStart('0');

去掉前面的0,非正则。

幻天芒 | 园豆:37205 (高人七级) | 2013-09-23 13:13

 这个最精简,

支持(0) 反对(0) 王俊1234 | 园豆:57 (初学一级) | 2013-09-25 17:22

@王俊1234: 俺讨厌正则,伤不起。呵呵~

支持(0) 反对(0) 幻天芒 | 园豆:37205 (高人七级) | 2013-09-25 22:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册