一、正则表达式基础
正则表达式在程序设计中有着重要的位置,经常用于处理字符串信息。主要用于:
(一)数据验证(Regex.IsMatch)
可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。
(二)替换文本(Regex.Replace)
可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
(三)从字符串中提取子字符串(Regex.Spli t)
可以查找文档内或输入域内特定的文本。
下面主要说明正则表达式的语法:
正则表达式一般由普通字符(例如a-z的字母,0-9的数字)、元字符、限定符组成。元字符只能匹配一个字符,限定符可以匹配自身重复出现的次数。下表列出常用的元字符和限定符
元字符 |
^ |
用于匹配行首,表示匹配开始。例如:^[0-9]$ |
$ |
用于匹配行尾,表示匹配结束。例如:^[0-9]$ |
|
\w |
用于匹配单词字符,包括汉子、字母、数字和下划线 |
|
\W |
用于匹配任意的非单词字符 |
|
\s |
用于匹配任意的空白字符,包括换行符、空格、制表符 |
|
\S |
用于匹配任意的非空白字符 |
|
\d |
用于匹配任意的数字,包括0、1、2、3、4、5、6、7、8、9 |
|
\D |
用于匹配任意的非数字字符 |
|
. |
用于匹配除换行符以外的任意字符。例如^…$匹配abc、123、_1a |
|
限定符 |
? |
用于限定指定的字符出现0或1次。^abc?$可以匹配abc或ab |
* |
用于限定指定的字符至少出现0次。^ab$可以匹配a、ab、abb等 |
|
+ |
用于限定指定的字符至少出现1次。^ab$可以匹配ab、abb、abbb |
|
{n} |
用于限定指定的字符出现n次。^c{5}$匹配ccccc |
|
{n,} |
用于限定指定的字符至少出现n次.^c{5,}匹配ccccc、cccccc |
|
{n,m} |
用于限定指定的字符至少出现n次,至多出现m次。 |
注:”\.”用于匹配普通字符”.”,若直接用”.”则表示元字符。
二、正则表达式的验证用法(主要用到Regex.IsMatch(str1,正则表达式))
数字验证:
A.验证数字密码的长度—“^\d{6,18}$”
分析:”^”—匹配开始,”\d{6,18}”—匹配至少6位、至多18位任意数字,”$”—匹配结束。
B.验证电话号码—“^(\d{3,4}-)?\d{6,8}$”
分析:”^”—匹配开始,”\d{3,4}”—匹配3位或4位任意数字(电话区号),”?”—表示”(\d{3,4}-)”出现0或1次(电话区号可有可无),”\d{6,8}”—匹配至少6位、至多8位任意数字(本地号码),”$”—匹配结束。
字母验证:
A.验证大写字母—“^[A-Z]+$”
分析:”^”—匹配开始,”[A-Z]”—匹配26个大写字母,”+”—表示”[A-Z]”至少出现一次,”$”—匹配结束。
B.验证汉字—“^[\u4e00-\u9fa5]{1,}$”
网络验证:
A.验证E-mail格式—
"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"
B.验证IP地址—"(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)"
C.验证URL—"http(s)?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?"