正则表达式

正则表达式

字符串的规则,给字符串定义一个规则

作用:

1  检测某一段字符串是否符合规则

2  从一大段文字中将符合规则的匹配出来
多用于爬虫中

规则;

元字符:

  匹配的是一个字符串的内容

量词: 

  匹配的次数

字符组:

数字

[0123456789]       #表示0到9之内的数字

[0-9]       #表示0到9之内的数字

不能使用[9-0],正则表达式不能从大到小,只能从小到大

因为正则表达式的大小都是根据ASCII码表来判断的

字母

[a-z]      #小写字母

[A-Z]      #大写字母

[A-Za-z]      #大写字母和小写字母

[A-Za-z0-9]           #大小写字母和数字

[A-Za-z0-9_]   大小写字母,数字和下划线,(想要什么符号可以在括号内添加)

顺序可以改变,如果使用需要查找特殊字符需要使用转义字符

元字符

d      #所有的数字

w           # 所有的数字字母下划线

      #换行符

       #制表符

s      #所有的空格,包括换行符和制表符

      # 表示一个单词的边界(放在字符的前面表示是否是这个字符结尾,放在字符的后面,判断是不是这个字符开头)

反义词

W        #除了数字字母下划线的所有
D        #除了数字的所有
S        #除了空白的所有
.          #除了换行符之外的所有
dD       #匹配所有
wW       #匹配所有
sS       #匹配所有

非字符组:

[^123]     #除了123之外的所有值

^       #开头 一个字符只有一个开始,必须在开头

$      #结尾  一个字符只有一个极为,必须在末尾

###如果使用^开头,使用$结尾,这个字符串的长度就被规定死了,
|        # 或者,左边的内容和右边的内容都是全集,且需要筛选的内容要与左边或者右边的内容全部相同。且,字符串长的必须放在符号的左边

www.(baidu|oldbay).com 小括号表示分组,正则表达式会对括号内的内容进行匹配(类似于算运算的优先级)

量词

量词 {}:   在量词的范围内尽可能多的匹配
d{9}          表示前面的紧挨着的规则必须连续出现
{n}           表示出现n次
{n,}          表示至少出现n次
{n,m}         表示出现n到m次
?          表示匹配0次或1次(用来查看某个字符是否存在,如果存在只能存在一次)
+          表示1次或多次
*          表示匹配0次或多次

正则表达式的特性:


贪婪匹配(a.*x) :默认的
    将所有的字符串都查询,然后反向查找第一个x取正向查的a到反向查的第一个x
    在量词匹配时,尽可能多的匹配,查找从a开始到最后一个x之间的所有数据

惰性匹配(a.*?x) :需要手动输入
    每查询一个值,就先看不是不是x,不是就交给.*处理
    尽可能的少匹配,查找从a开始到x之间的所有数据

原文地址:https://www.cnblogs.com/mk-lovefreedom/p/10572153.html