正则表达式学习方法摸索

前端之家收集整理的这篇文章主要介绍了正则表达式学习方法摸索前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.常用的正则表达式集合

(1)匹配单个中文字符:[\u4e00-\u9fa5],这是指unicode中文字符范围;

(2)匹配空白行:\n\s*\r

(3)匹配邮箱地址: [\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?

(4)匹配网址url:[a-zA-z]+://[^\s]*

(5)匹配国内的电话号码:\d{3}-\d{8}|\d{4}-\{7,8}

(6)匹配QQ号码:[1-9][0-9]{4,}

(7)匹配国内邮政编码:[1-9]\d{5}(?!\d)

(8)匹配身份证号码:^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$

(9)匹配年-月-日时间格式:([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))

(10)匹配正整数:^[1-9]\d*$

(11)匹配负整数:^-[1-9]\d*$

(12)匹配整数:^-?[1-9]\d*$

(13)匹配非负整数:^[1-9]\d*|0$

(14)匹配非正整数:^-[1-9]\d*|0$

(15)匹配正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$

(16)匹配负浮点数:^-[1-9]\d*\.\d*|-0\.\d*[1-9]\d*$

2.学习正则前所需要了解的几个正则的概念,按照这个思路了解下正则能做哪些事情,看起正则源码会事半功倍。

(1)元字符:正则里面用于定义规则的字符;

(2)字符转义:查找元字符本身,要加上\来转义;

(3)如何重复,表达式重复表示:*(>=1)、+(>=1)、?(0 or 1)、{n}(n次)、{n,}(n次或更多次),{n,m}(n-m次);

(4)非元字符的字符如何表示?直接列出来就行了;

(5)分支条件:一个表达式能同时满足几种可能,相当于在一个表达式中存在几种“或”的关系:用“|”把分支条件隔开即可;

(6)分组/子表达式:用()来表示分组/子表达式,以方便指定重复次数

(7)反义,就是匹配出了某个规则以外的内容

\W匹配不是字母、数字、下划线、汉字的字符;

\S匹配任意不是空白符的字符;

\D匹配任意非数字的字符;

\B匹配任意不是单词开头或者结束的字符;

[^x]匹配除了x以外的任意字符;

[^aeIoU]匹配出了aeIoU这几个字母以外的任意字符;

(8)未完待补充,还没学习完

3.针对上述(1)中常用正则表达式进行逐个解析、学习、总结的结果

(1)正则表达式[]、{}、()的意思

[]表示所需要匹配的字符范围,[a-zA-Z0-9],表示相应的字符要匹配英文字符和数字。

{}匹配字符的长度,比如\s{3}表示3个空格,\s{1,3}表示1-3个空格;

()提取匹配的字符串,(\s*)表示连续空格的字符串。

(2)元字符

\n 换行符

\s 任意的空白格,包括空格、制表符、换行符、中文全角空格等;

* 表示当前匹配重复任意次(包括0次)

\r 回车

+ 表示当前匹配1次或者更多次

\w 匹配字母、数字、下划线、汉字

\b 以字母开头或者结尾的内容

^ 字符串开始

$ 字符串结束


参考引用:

http://tool.oschina.net/regex/#

http://deerchao.net/tutorials/regex/regex.htm

上述中邮箱地址还没有完全看懂,需要继续看。

猜你在找的正则表达式相关文章