急求一正则表达式
我要匹配如下要求的字符串
1。字符串必须是数字 可能为0开头如 0001111212
2。字符串长度必须为10位或18位或16位
问题点数:20、回复次数:8Top
1 楼steedhorse(晨星)回复于 2006-03-03 12:39:04 得分 0
(1) @"\d+"
(2) @"(.{10})|(.{16})|(.{18})"Top
2 楼leiyingw(小雷)回复于 2006-03-03 12:40:38 得分 0
楼上的,我这两个条件是要同时满足的Top
3 楼steedhorse(晨星)回复于 2006-03-03 12:41:37 得分 5
@"(\d{10})|(\d{16})|(\d{18})"
Top
4 楼leiyingw(小雷)回复于 2006-03-03 12:50:21 得分 0
好像16位和18位匹配不了
Top
5 楼steedhorse(晨星)回复于 2006-03-03 13:52:40 得分 10
在我的机器上可以匹配啊,不过想想最好还是写成
@"^((\d{10})|(\d{16})|(\d{18}))$"Top
6 楼steedhorse(晨星)回复于 2006-03-03 13:54:35 得分 0
using System;
using System.Text.RegularExpressions;
namespace steedhorse
{
class Test{
public static void Main(string[] args) {
string[] testors = new string[]{
"0123456789",
"0123456789012345",
"012345678901234567",
"01234567890123456",
"0123456",
"012aaaaaaaaaaaaaaa",
"bbbbbbbbbbbbbbbb"};
String pattern = @"^((\d{10})|(\d{16})|(\d{18}))$";
Regex re = new Regex(pattern);
foreach(string s in testors)
{
Console.WriteLine("{0} : {1}", s, re.IsMatch(s));
}
}
}
}Top
7 楼xiaomi7732(小米)回复于 2006-03-03 14:03:29 得分 5
@"^\d{10}|^\d{16}|^\d{18}$"
不知道行不行,楼主试试。Top
8 楼happyamei(啊梅)回复于 2006-03-03 14:44:25 得分 0
学习中.......Top




