当前位置:编程学习 > JAVA >>

正则表达式基本知识

1、“.”为通配符,表示任何一个字符,例如:“a.c”可以匹配“anc”、“abc”、“acc”;  
 
2、“[]”,在[]内可以指定要求匹配的字符,例如:“a[nbc]c”可以匹配“anc”、“abc”、“acc” 
 
;但不可以匹配“ancc”,a到z可以写成[a-z],0到9可以写成[0-9]; 
 
3、数量限定符号,表示匹配次数(或者叫做长度)的符号: 
 
包括:“*”——0次或者多次 
 
      “+”——1次或者多次 
 
      “?”——0次或者1次 
 
      “{n}”——匹配n次,n为整数 
 
      “{n,m}”——匹配从n到m之间的某个数的次数;n和m都是整数; 
 
      “{n,}”——匹配n到无穷次之间任意次数; 
 
      “{,m}”——匹配0到m之间任意次数; 
 
他们放到匹配格式的后面: 
 
例如: 
 
电话号码:024-84820482,02484820482(假设前面3或者4位,后面7或者8位,并且中间的减号可有可无) 
 
都是符合规定的,那么可以用如下格式来匹配:[0-9]{3,4} \\-? [0-9]{7,8}; 
 
注意:“\\”为转义字符,因为“-”在正则表达式用有代表一个范围的意义,例如:前面所说的[0-9], 
 
所以它需要转义字符“\\”进行转义才可使用; 
 
4、“^”为否符号,表示不想匹配的符号,例如:[^z][a-z]+可以匹配所有除“z”开头的以外的所有字 
 
符串(长度大于2,因为“+”表示大于等于1的次数,从第二位开始都是小写英文字符); 
 
如果^放到[]的外边则表示以[]开头的字符串;^[az][a-z]+表示a或者z开头的长度大于等于2的英文字符 
 
串; 
 
5、“|”或运算符,例如:a[n|bc|cb]c可以匹配“abcc”,“anc”,“acbc”; 
 
6、“$”以它前面的字符结尾的;例如:ab+$就可以被“abb”,“ab”匹配; 
 
7、一些简单表示方法: 
 
\\d表示[0-9];\\D表示[^0-9];\\w表示[A-Z0-9];\\W表示[^A-Z0-9];\\s表示[\\t\\n\\r\\f],就是空格字符包括tab 
 
,空格等等;\\S表示[^\\t\\n\\r\\f],就是非空格字符; 
 
8、常用的匹配: 
 
匹配中文字符: “[\\u4e00-\\u9fa5]”; 
 
匹配双字节字符(包括汉字在内):“[^\\x00-\\xff]”; 
 
匹配空行的正则表达式:“\\n[\\s| ]*\\r”; 
 
匹配HTML标记的正则表达式:“/.*|/”; 
 
匹配首尾空格的正则表达式:“(^\\s*)|(\\s*$)”; 
 
匹配非负整数(正整数 + 0):“^\\d+$”;    
 
匹配正整数:“^[0-9]*[1-9][0-9]*$”;  
 
匹配非正整数(负整数 + 0):“^((-\\d+)|(0+))$”; 
 
匹配负整数:“^-[0-9]*[1-9][0-9]*$”; 
 
匹配整数:“^-?\\d+$”; 
 
匹配非负浮点数(正浮点数 + 0):“^\\d+(\\.\\d+)?$” 
 
匹配正浮点数:“^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]* 
 
))$”; 
 
^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$  //匹配非正浮点数(负浮点数 + 0)  
 
^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配 
 
负浮点数  
 
匹配浮点数:“^(-?\\d+)(\\.\\d+)?$”; 
 
匹配由数字、26个英文字母或者下划线组成的字符串:“^\\w+$”; 
 
匹配email地址:“^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$”; 
 
匹配url:“^[a-zA-z]+://匹配(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$” 
 
1、“.”为通配符,表示任何一个字符,例如:“a.c”可以匹配“anc”、“abc”、“acc”;  
2、“[]”,在[]内可以指定要求匹配的字符,例如:“a[nbc]c”可以匹配“anc”、“abc”、“acc”  
;但不可以匹配“ancc”,a到z可以写成[a-z],0到9可以写成[0-9];... 
补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,