正则表达式的字符、说明和其简单应用示例
字符和其含义
字符 含义
\ 转义字符,将一个具有特殊功能的字符转义为一个普通的字符
^ 匹配字符串的开始位置
$ 匹配字符串的结束位置
* 匹配前面的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 }