本教程来自于C#程序设计windows版第12章正则表达式章节javascript
\,[],[^],-,(),|
[]
可接收的字符列表java
[abcd] 匹配a,b,c,d4个字母中的任意**一个**字符
[^]
不接收的字符列表^
符号非正则表达式
[^abc] 除abc以外的任意**一个**字符,包括数字,汉字和特殊符号
|
匹配|
以前或以后的表达式windows
ab|cd 匹配ab或者cd
-
连字符学习
a-z 任意单个小写英文字母
()
将子表达式分组测试
(abc) 将字符串abc做为一组
\ 转义符号设计
\# 表示符号#,#匹配
*,+,?^,$,{n},{n,},{n,m}
*
指定字符重复0次或者n次code
(abc)* 仅包含任意个abc的字符串
+
指定字符重复至少1次(指定字符重复1次或n次)regexp
m+(abc)* 表示 以致少一个m开头,后接任意个abc的字符串
?
指定字符重复0次或者1次javascript正则
m+abc? 表示 以致少一个m开头,后接ab或者abc的字符串
^
指定起始字符
^[0-9]+[a-z]* 表示以致少一个数字开头,后接任意个小写字母的字符串
$
指定结束字符
^[0-9]\-[a-z]+$ 表示以致少一个数字开头,后接字符'-',并以致少一个小写字母结尾的字符串
{n}
只能输入n个字符
[abcd]{3} 表示一个只能含abcd这四个字符的三位字符串
{n,}
至少输入n个字符
[abcd]{3,} 表示一个只能含abcd这四个字符的长度不小于3的字符串
{n,m}
至少输入n个,至多输入m个字符的字符串
[abcd]{3,5} 表示一个只能含abcd这四个字符的长度不小于3不大于5的字符串
.,\d,\D,\w,\W
.
匹配除换行(\n)以外的任何单个字符
a..b 以a开头,b结尾,中间包括两个任意字符的长度为4的字符串
\d
匹配单个数字字符,至关于[0-9]
\d{3}(\d)? 表示包含3位或4位数字的字符串
\D
匹配单个非数字字符,至关于[^0-9]
\D(\d)* 表示以单个非数字字符开头,后接任意(可为0)个数字的字符串
\w
匹配单个数字,大小写字母和汉字字符
\d{3}\w{4} 表示以三个数字开头,后跟4个数字,字母或者汉字的字符串
\W
匹配单个除数字,字母和汉字字符之外的其余字符
\W+\d{2} 表示以致少一个非数字、字母、汉字开头,两位数字结尾的字符串 eg:#?@10
ps:正则表达式这是对字符串的处理。
参考连接:
正则表达式语法
javascript正则表达式语法
作个学习例子:
请听题:以字母开头^[a-zA-Z]
,容许包含[]
,字母[a-zA-Z]
,数字[0-9]
及下划线[_]
,长度为5到16{5,16}
的字符串,用正则表达式来书写
思考过程在读题的过程当中已经标出,那么组合一下应该是^[a-zA-Z][a-zA-Z0-9_]{5,16}
,不能有空格即不能写成^[a-zA-Z][a-zA-Z0-9_] {5,16}
,有空格则错误
note:
两个[][]
,为何不是只针对后面那个[]
,又或者说,{m,n}这种长度模式应该是全局匹配, 即换成下面这道题: 以字母开头,后接容许5到16个包含字母,数字及下划线的字符串,用正则表达式来书写。用js测试一下。