正则表达式
.英文符号的点可以进行匹配任意单个字符
t.n 可以匹配tAn,t2n,但是不能匹配t哎n,tAAn
[]只有方括号中指定的字符才参与匹配
t[abcd]n 可以匹配tan,tbn,单不能匹配tEn,t5n
| 相当于或的关系,只能匹配其中的一项
t(a|b|dd)n 可以匹配tan,tddn 但不能匹配taan,tn
可以匹配多次的字符
| 符号 | 次数 |
|---|---|
| * | >=0次 |
| + | >=1次 |
| ? | 等价于 |
| 恰好n次 | |
| n<=次数>=m | |
| 至少n次 |
^表示否
^x 表示不能是x
快捷符号
| 符号 | 含义 |
|---|---|
| \s | 一个空格、制表符、回车符、换页符 |
| | | 转义字符,\{ 表示{ |
| () | 分组号 |
| \d | [0—9] |
| \D | [^0—9] |
| \w | [0-9A-Za-z] |
| \W | [^0-9A-Za-z] |
| \s | [\f\n\r\t\v] |
| \S | [^ \f\n\r\t\v] |
元字符及其在正则表达式上下文中的行为:
\将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。^匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^也匹配\n或\r之后的位置。
*$匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$也匹配\n或\r之前的位置。?当该字符紧跟在任何一个其他限制符(*, +, ?, {n}, {n,}, {n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。.匹配除 "\n" 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。(pattern)匹配pattern 并获取这一匹配。(?:pattern)匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。(?=pattern)正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。(?!pattern)负向预查,与(?=pattern)作用相反x|y匹配 x 或 y。[xyz]字符集合。[^xyz]负值字符集合。[a-z]字符范围,匹配指定范围内的任意字符。[^a-z]负值字符范围,匹配任何不在指定范围内的任意字符。\b匹配一个单词边界,也就是指单词和空格间的位置。\B匹配非单词边界。\cx匹配由x指明的控制字符。\f匹配一个换页符。等价于\x0c和\cL。\n匹配一个换行符。等价于\x0a和\cJ。\r匹配一个回车符。等价于\x0d和\cM。\t匹配一个制表符。等价于\x09和\cI。\v匹配一个垂直制表符。等价于\x0b和\cK。\xn匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。\num匹配 num,其中num是一个正整数。对所获取的匹配的引用。\n标识一个八进制转义值或一个后向引用。如果\n之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。\nm标识一个八进制转义值或一个后向引用。如果\nm之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。\nml如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。\un匹配 n,其中 n 是一个用四个十六进制数字表示的Unicode字符。- 匹配中文字符的正则表达式:
[\u4e00-\u9fa5] - 匹配双字节字符(包括汉字在内):
[^\x00-\xff] - 匹配空行的正则表达式:
\n[\s| ]*\r - 匹配HTML标记的正则表达式:
/<(.*)>.*<\/\1>|<(.*) \/>/ - 匹配首尾空格的正则表达式:
(^\s*)|(\s*$) - 匹配IP地址的正则表达式:
/(\d+)\.(\d+)\.(\d+)\.(\d+)/g // - 匹配Email地址的正则表达式:
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* - 匹配网址URL的正则表达式:
http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? - sql语句:
^(select|drop|delete|create|update|insert).*$ - 非负整数:
^\d+$ - 正整数:
^[0-9]*[1-9][0-9]*$ - 非正整数:
^((-\d+)|(0+))$ - 负整数:
^-[0-9]*[1-9][0-9]*$ - 整数:
^-?\d+$ - 非负浮点数:
^\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+)?))$ - 负浮点数:
^(-((正浮点数正则式)))$ - 英文字符串:
^[A-Za-z]+$ - 英文大写串:
^[A-Z]+$ - 英文小写串:
^[a-z]+$ - 英文字符数字串:
^[A-Za-z0-9]+$ - 英数字加下划线串:
^\w+$ - E-mail地址:
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ - URL:
^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~@[]':+!]([^<>""])$` - 邮政编码:
^[1-9]\d{5}$ - 中文:
^[\u0391-\uFFE5]+$ - 双字节字符(包括汉字在内):
^\x00-\xff - 匹配首尾空格:
(^\s*)|(\s*$)(像vbscript那样的trim函数) - 匹配HTML标记:
<(.*)>.*<\/\1>|<(.*) \/> - 匹配空行:
\n[\s| ]*\r - 提取信息中的网络链接:
(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? - 提取信息中的邮件地址:
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* - 提取信息中的图片链接:
(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? - 提取信息中的IP地址:
(\d+)\.(\d+)\.(\d+)\.(\d+) - 提取信息中的中国固定电话号码:
(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8} - 提取信息中的中国邮政编码:
[1-9]{1}(\d+){5} - 提取信息中的浮点数(即小数):
(-?\d*)\.?\d+ - 提取信息中的任何数字 :
(-?\d*)(\.\d+)? - IP:
(\d+)\.(\d+)\.(\d+)\.(\d+) - 电话区号:
/^0\d{2,3}$/ - 帐号(字母开头,允许5-16字节,允许字母数字下划线):
^[a-zA-Z][a-zA-Z0-9_]{4,15}$ - 中文、英文、数字及下划线:
^[\u4e00-\u9fa5_a-zA-Z0-9]+$

浙公网安备 33010602011771号