正则表达式

Posted 左弦月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。

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之间任意次数; 
他们放到匹配格式的后面: 
例如: 
电话号码:0755-12345678,075512345678(假设前面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标记的正则表达式:“/<(.*)>.*<///1>|<(.*) //>/”; 
匹配首尾空格的正则表达式:“(^/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*)?$”

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

求...js正则表达式 只能是字母,数字,减号,下划线组成,

Javascript 正则表达式到数字/十进制和减号

正则表达式 - 减号/连字符问题

如何使用正则表达式捕获科学记数法中的减号?

正则表达式 首尾匹配

VB正则表达式首尾匹配