码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式总结

时间:2019-12-20 16:38:51      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:中文   特殊字符   多重   aabb   大小写   tin   空格   exp   次数   

正则表达式语法

1.普通字符

字母,数字,汉字,下划线,没有特殊意义的标点符号。匹配与之一样的字符

2.简单的转义字符

\n 换行
\t 制表符
\\ 本身
^,\$,\{,\}等等 匹配本身

?3.标准字符集合

能够与多种字符匹配的表达式

注意区分大小写,大写是相反的意思

\d 匹配0-9之间的任意一个数字
\D 匹配非数字一个字符
\w 任意一个字母,数字或者下划线。
\W 跟上面相反任意一个除了字母,数字或者下划线以外的符号。
\s 匹配任意一个空白字符。如:空格,制表符,换行符等
. 可以匹配任意一个字符(除了换行符)。如果要匹配换行符在内的所有字符,用[\s\S]

4.自定义字符集合

[]方括号匹配方式,能够匹配方括号中任意一个字符

[abc]表示a或b或c

[ab5@] 匹配"a","b","5"或者"@"中任意一个
[^ab5@] 匹配"a","b","5"或者"@"之外任意一个
[a-k] 匹配“a”到"k"之间任意一个字母
[1-7] 匹配1,2,3,4,5,6,7任意一个。[1-7]=[1234567]
[^1-6A-k] 匹配1到6,A到K之外的任意一个字符

”-“表示简写中间的。

特殊符号如果在中括号中,将失去特殊意义,除了^, -

标准字符集合,除了小数点外,如果被包含在中括号,自定义字符集合将包含该集合。如:

? [\d.-+]将匹配:数字,小数点,+,-

5.量词

修饰匹配次数的特殊符号

{n} 表达式重复n次
{m,n} 至少重复m次,至多重复n次
{m,} 至少重复m次
? 相当于{0,1},重复1次或者0次
+ 相当于{1,},重复至少1次
* 相当于{0,},不出现或者重复任意次

例如:

\d{6} 匹配连续的6个数字

\d\d{6} 匹配连续的7位数字,因为量词只能对前面的一个表达式生效

(\d\d){6} 匹配连续的12个数字。用括号括起来,将前面看成一个表达式


量词匹配默认是贪婪模式(尽可能匹配更多的字符):

如:"\d{3,6}"匹配"1234567"中的前6个字符。

非贪婪模式,只需要在后面加一个?

如:"\d{3,6}?"匹配"1234567"中的"123"和"456"

6.字符边界

本组标记匹配的不是字符而是位置,符合某种条件的位置

^ 与字符串开始的地方匹配
$ 与字符串结束的地方匹配
\b 匹配一个单词的边界

如:

"^a"匹配"aabbccaa"中的第一个字符

"a$"匹配"aabbccaa"中的最后一个字符

"\ba"匹配"aabbccaa"中的第一个字符

"a\b"匹配"aabbccaa"中的最后一个字符

"\baa"匹配"aacc aadd aaee"中的所有"aa",\b匹配的是边界上的都可以

7.正则表达式的匹配模式

  1. 忽略大小写模式
  2. 单行模式:将整个文本看作一个字符串,只有一个开头,一个结尾
  3. 多行模式:每行都看作一个字符串,都有开头和结尾
\A 只匹配第一行的第一个
\Z 只匹配最后行最后个

8.选择符和分组

| 匹配符号左边的或者右边的
()捕获组
(?:Expresion)非捕获组

"aa|bb"可以匹配“aa”或者"bb".

小括号。"([a-z]{2})\2" 将匹配到的字符重复一遍再匹配

9.预搜索

(?=exp) 断言自身出现的位置的后面能匹配exp
(?<=exp) 断言自身出现的位置前面能出现exp
(?!exp) 断言自身出现的位置的后面不能匹配exp
(?<!exp) 断言自身出现的位置前面不能出现exp

"[a-z]+(?=ing)" 匹配以"ing"结尾的字符串。如"eating"中的"eat",但是不包含"ing"

"[a-z]+(?=\d)"匹配所有以数字结尾的单词

10.MySql中like模糊查询

在 where like 的条件查询中,SQL 提供了四种匹配方式(不是正则)。

1. %:表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
2. _:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
3. []:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
4. [^]:表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
5. 查询内容包含通配符时,由于通配符的缘故,导致我们查询特殊字符 “%”、“_”、“[” 的语句无法正常实现,而把特殊字符用 “[ ]” 括起便可正常查询。

正则表达式总结

标签:中文   特殊字符   多重   aabb   大小写   tin   空格   exp   次数   

原文地址:https://www.cnblogs.com/shun-w/p/12073824.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!