正则表达式基础

/ 0评 / 0

正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。(其实正则表达式就是用来做字符串匹配的,有那么复杂吗!!!???)

正则表达式中的元素分为以下几种
界定符,原子,量词,边界控制,模式单元

界定符

表示一个正则表达式 ,“ /[0-9]/”这里面的 / 就是界定符,也可以是 # 或 {} 表示

原子,分为可见原子和不可见原子

可见原子:Unicode编码表中用键盘输出后肉眼可见的字符。
包括:标点 ; '' _ ? . 等;英文字母数字 a-z,A-Z,0-9 ;汉字、日文、阿拉伯文等其他语言;Σ,∈,≈等数理化公式符号;其他可见字符。
不可见原子:Unicode编码表中用键盘输出后肉眼不可见的字符。
包括:换行符 \n ;回车 \r ;制表符 \t ;空格;其他不可见符号。

元字符

表示原子的筛选方式: | 匹配两个或者多个分支选择; [] 匹配方括号中的任意一个原子; [^] 匹配除方括号中的原子之外的任意字符;
. 匹配除换行符之外的任意字符; \d 匹配任意一个十进制数字,即[0-9] ;\D 匹配任意一个非十进制数字,即[^0-9] ;\s 匹配一个不可见原子,即[\f\n\r\t\v];\S 匹配一个可见原子,即[^\f\n\r\t\v];\w 匹配任意一个数字、字母或下划线,即[0-9a-zA-Z_];\W 匹配任意一个非数字、字母或下划线,即[^0-9a-zA-Z_];

量词

表示出现的次数:{n} 表示其前面的原子恰好出现n次;{n,} 表示其前面的原子最少出现n次;{n,m} 表示其前面的原子最少出现n次, 最多出现m次; * 匹配0次、1次或者多次其之前的原子,即{0,};+ 匹配1次或者多次其之前的原子,即{1,}; ? 匹配0次或者1次其之前的原子,即{0,1}。

边界控制与模式单元

^ 匹配字符串开始的位置 ;$ 匹配字符串结尾的位置 ; ( ) 匹配其中的整体为一个原子。

贪婪匹配与懒惰匹配

贪婪匹配:匹配结果存在歧义时取其长; 懒惰匹配:匹配结果存在歧义时取其短。

常见修正模式

U 懒惰匹配; i 忽略英文字母大小写; x 忽略空白; s 让元字符 ' . ' 匹配包括换行符在内所有字符。

举例:
非空验证正则: /.+/
浮点数验证正则: /\d+\.\d{2}$/ (保留两位小数)
手机验证正则: /1(3|5|7|8|4)\d{9}/
邮箱验证正则: /^\w+(\.\w+)*@\w+(\.\w+)+$/
URL验证正则: /^(https?://)?(\w+\.)+[a-zA-Z]+$/

推荐一款很好用的正则表达式测试工具 regexpal 下载地址:http://regexpal.isbadguy.com/

regexpal

评论已关闭。