正则表达式基础语法大全

正则表达式基础语法

1.普通字符:
字母、数字、汉子、下划线、以及没有特殊定义的标点符号,都是“普通字符”。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。

2.简单的转义字符:

3.标准字符集合: 
- 能够与'多种字符' 匹配的表达式
- 注意区分大小写,大写是相反的意思

4.自定义字符集合:
-[  ]方括号匹配方式,能够匹配方括号中任意一个字符

例如:[2-8a-n] 匹配2至8的数和a至n的数
注意:
-正则表达式的特殊符号,被包含到中括号中,则失去特殊意义,除了^,-之外
-标准字符集合,除小数点外,如果被包含于中括号,自定义字符集合将包含该集合。
  比如:[\d.\-+]将匹配:数字(\d)、小数点(.)、+(\+)、-(\-)

5.量词:
- 修饰匹配次数的特殊符号

例:\d{6} 匹配6个数字的
\d{0,1} 匹配0个数字或者1个数字
注意:
- 匹配次数中的贪婪模式(匹配字符越多越好,默认!)
- 匹配次数中的非贪婪模式(匹配字符越少越好,修饰匹配次数的特殊符号后再加上一个"?"号)
例:
\d{3,6} 匹配3-6个数字的(默认:贪婪式)
\d{3,6}? 匹配3-6个数字(非贪婪模式)

6.字符边界
- 标记匹配的不是字符而是位置,符合某种条件的位置

注:\b匹配这样一个位置:前面的字符和后面的字符不全是\w

7.选择符和分组(常常与8联用)

8.反向引用(\nnn)
-  每一对()会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号。
-  通过反向引用,可以对分组已捕获的字符串进行引用。
注意:根据左括号为准编号!
例:goto gogo toto dodo todo 只想匹配gogo toto dodo---->([a-z]{2})\1  : 匹配(a-z){2}后再匹配1次

9.预搜索

例:[a-z]+(?=ing) 表示:匹配字母开头,ing结尾的字符(不包括ing)

练习:

1.匹配电话号码:010-8889999--->0\d{2,3}-\d{7,9}
表示:匹配开头为0,然后2至3位数字,再然后有个"-",最后7至9位数字。
2.邮箱验证:[email protected]>[\w\-]+@[a-z0-9A-Z]+(\.[A-Za-z]{2,3}){1,2}
表示:匹配多个以字母等(省略....)开头,@,后面接小写或大写或数字,再匹配以 "."+2至3个以小写或大写的 并且重复匹配1或2次。
常用的匹配列表(不唯一)

了解:正则表达式的匹配模式
(1)IGNORECASE 忽略大小写模式
     -匹配时忽略大小写。
     -默认情况下,正则表达式是要区分大小写的。
(2)SINGLELTNE 单行模式
     -整个文本看作一个字符串,只有一个开头,一个结尾。
     -使小数点"."可以匹配包含换行符(\n)在内的任意字符。
(3)MULTILINE 多行模式
     -每行都是一个字符串,都有开头和结尾。
     -在指定了MULTILINE之后,如果需要仅匹配字符串开始和结束位置,可以只用\A和\Z。

猜你喜欢

转载自blog.csdn.net/qq_41877184/article/details/90613743
今日推荐