正则表达式的字符、说明和其简单应用示例

11/25/2015来源:ASP.NET技巧人气:2217

 

字符和其含义

字符       含义

\         转义字符,将一个具有特殊功能的字符转义为一个普通的字符

^        匹配字符串的开始位置

$        匹配字符串的结束位置

*        匹配前面的0次或多次的子表达式

+        匹配前面的1次或多次的子表达式

?        匹配前面的0次多1次的子表达式

{n}       n是非负整数,匹配前面的n次子表达式

{n,}       n是非负整数,至少匹配前面的n次子表达式

{n,m}      m,n均为非负整数,其中n<=m,至少匹配n次且最多匹配m次

?        当跟在其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式尽可能少的匹配所搜索的字符串

.        匹配除"\n"之外的任何单个字符

(pattern)    匹配pattern并获取这一匹配

(?:pattern)   匹配pattern但不获取匹配结果

(?=pattern)   正向预查,在任何匹配pattern的字符串开始处匹配查找字符串

(?!pattern)   负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串

x|y       匹配x或y

[xyz]      匹配包含的任意一个字符

[^xyz]       匹配未包含的任意字符

[a-z]      匹配指定范围内的任意字符

[^a-z]       匹配不在指定范围内的任意字符

\b       匹配一个单词边界,即单词和空格间的位置

\B       匹配非单词边界

\d       匹配一个数字字符,和[0-9]等价

\D       匹配一个非数字字符,和[^0-9]等价

\f        匹配一个换页符

\n       匹配一个换行符

\r       匹配一个回车符

\s       匹配任何空白字符,包括空格、制表符、换页符等

\S       匹配任何非空白字符

\t       匹配一个制表符

\v       匹配一个垂直制表符。

\w       匹配包括下划线的任何单词字符。和[a-zA-Z0-9_]等价

\W       匹配任何非单词字符。和[^a-zA-Z0-9_]等价

 运行效果:

试着输入一下:

前台js验证,使用正则的exec方法,代码如下: 

 1 <head runat="server">
 2 <title></title>
 3 <script type="text/javascript">
 4     function judge() {
 5         var text = document.getElementById("<%= TextBox1.ClientID%>").value;
 6         var patten = /^\d{8}$/;
 7         if(!patten.exec(text)) {
 8             alert("输入的不是8位数字");
 9         }
10     }
11 </script>
12 </head>
13 <body>
14 <form id="form1" runat="server">
15 <div>
16     <asp:TextBox ID="TextBox1" runat="server" MaxLength="8" onblur="judge();"></asp:TextBox>
17 </div>
18 </form>
19 </body>

 

后台使用正则表达式,需引入命名空间using System.Text.RegularExPRessions;使用Regex的静态方法IsMatch(),代码如下:

 1 protected void Button_Click(object sender, EventArgs e)
 2 {
 3     string patten = @"^\d{8}$";
 4     Regex regex = new Regex(patten);
 5     string text = TextBox1.Text.Trim();
 6     if (!regex.IsMatch(text))
 7     {
 8         ClientScript.RegisterStartupScript(ClientScript.GetType(), "", "<script>alert('输入的不是8位数字')</script>");
 9     }
10 }