找了许多正则表达式的教程,一直没有惬意的,要不就是直接给出一张元字符的表,要不就是给出种种经常运用的表达式,直到我看到这篇http://deerchao.net/tutorials/regex/regex.htm
这篇教程简朴明了的写了正则表达式的作用及如何运用,下面是我看完的个人明白:
正则的作用——婚配
明白了正则表达式的作用才更好的控制它,正则表达式的作用就是为了婚配字符串:
所以正则里的语法都是为了方便地婚配字符串而生的
下面是正则里最基本的几个婚配符:
. 婚配除换行符之外的恣意字符
\w 婚配字母或数字或下划线或汉字
\s 婚配恣意的空白符
\d 婚配数字
\b 婚配单词的最先或完毕
^ 婚配字符串的最先
$ 婚配字符串的完毕
偶然我们须要自定义婚配的局限
[aeiou]
[a-z0-9A-Z_]
只需满足括号里的恣意字符即满足婚配。
偶然我们须要取反:
\W 婚配恣意不是字母,数字,下划线,汉字的字符
\S 婚配恣意不是空白符的字符
\D 婚配恣意非数字的字符
\B 婚配不是单词开首或完毕的位置
[^x] 婚配除了x之外的恣意字符
[^aeiou] 婚配除了aeiou这几个字母之外的恣意字符
这些只能婚配单个的字符,偶然我们要婚配多个反复的:
? 反复零次或一次
{n} 反复n次
{n,} 反复n次或更屡次
{n,m} 反复n到m次
* 反复零次或屡次
+ 反复一次或屡次
分支、分组和字符转义
分枝指的是有几种划定规矩,假如满足个中恣意一种划定规矩都应该当做婚配,具体方法是用|把差别的划定规矩分离隔。
如:
0d{2}-d{8}|0d{3}-d{7}这个表达式能婚配两种以连字号分开的电话号码:一种是三位区号,8位当地号(如010-12345678),一种是4位区号,7位当地号(0376-2233445)。
分组指的是可以用小括号把一条表达式括起来当做一个子表达式来用,然后你就能够指定这个子表达式的反复次数了。
如:
(d{1,3}.){3}d{1,3}是一个简朴的IP地点婚配表达式。要明白这个表达式,请按以下递次剖析它:d{1,3}婚配1到3位的数字,(d{1,3}.){3}婚配三位数字加上一个英文句号(这个团体也就是这个分组)反复3次,末了再加上一个一到三位的数字(d{1,3})。
偶然我们要婚配的字符串能够包括正则表达式语法供应的一些元字符,这时候我们就要用到字符转义:
比方:
deerchao.net婚配deerchao.net,C:\Windows婚配C:Windows。