[实例4-14]本例将创建一个控制台应用程序,使用正则表达式判断电话号码是否为北京地区的电话号码。首先北京地区电话区号为"010",后面电话号码位数为8,例如:"01088888888"。使用正则表达式的语法规则可进行限定,在控制台项目Program.cs文件的main函数中输入下面代码:
书中的源代码是这样写的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str1, str2, strreg;
strreg = "010-\\d{8,8}";
str1 = "010-87675842";
str2 = "010-1234567808098977";
Console.WriteLine("是否北京电话号码 " + Regex.IsMatch(str1,strreg).ToString());
Console.WriteLine("是否北京电话号码 " + Regex.IsMatch(str2,strreg).ToString());
System.Console.ReadLine();
}
}
}
答案是两个都为TRUE
这就不对了,str2的010-后面已经超过8位
为什么还是true呢
那么肯定是他没有进行对整个str2字符串的匹配
而是看010-12345678这部分满足了就行了
下面把strreg = "010-\\d{8,8}";修改为strreg = "^010-\\d{8,8}$";
就可以了.
----------------------------------------------------------------------------------
元字符^(和数字6在同一个键位上的符号)和$都匹配一个位置,这和\b有点类似。^匹配你要用来查找的字符串的开头,$匹配结尾。这两个代码在验证输入的内容时非常有用,比如一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$。
这里的{5,12}和前面介绍过的{2}是类似的,只不过{2}匹配只能不多不少重复2次,{5,12}则是重复的次数不能少于5次,不能多于12次,否则都不匹配。
因为使用了^和$,所以输入的整个字符串都要用来和\d{5,12}来匹配,也就是说整个输入必须是5到12个数字,因此如果输入的QQ号能匹配这个正则表达式的话,那就符合要求了。
书中的源代码是这样写的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str1, str2, strreg;
strreg = "010-\\d{8,8}";
str1 = "010-87675842";
str2 = "010-1234567808098977";
Console.WriteLine("是否北京电话号码 " + Regex.IsMatch(str1,strreg).ToString());
Console.WriteLine("是否北京电话号码 " + Regex.IsMatch(str2,strreg).ToString());
System.Console.ReadLine();
}
}
}
答案是两个都为TRUE
这就不对了,str2的010-后面已经超过8位
为什么还是true呢
那么肯定是他没有进行对整个str2字符串的匹配
而是看010-12345678这部分满足了就行了
下面把strreg = "010-\\d{8,8}";修改为strreg = "^010-\\d{8,8}$";
就可以了.
----------------------------------------------------------------------------------
元字符^(和数字6在同一个键位上的符号)和$都匹配一个位置,这和\b有点类似。^匹配你要用来查找的字符串的开头,$匹配结尾。这两个代码在验证输入的内容时非常有用,比如一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$。
这里的{5,12}和前面介绍过的{2}是类似的,只不过{2}匹配只能不多不少重复2次,{5,12}则是重复的次数不能少于5次,不能多于12次,否则都不匹配。
因为使用了^和$,所以输入的整个字符串都要用来和\d{5,12}来匹配,也就是说整个输入必须是5到12个数字,因此如果输入的QQ号能匹配这个正则表达式的话,那就符合要求了。
2327

被折叠的 条评论
为什么被折叠?



