正则表达式

正则表达式

通用匹配

1.普通转义字符:

\w:匹配单个字母数字下划线    \W:匹配单个非字母数字下划线

\d:匹配单个数字[0-9]               \D:匹配单个非数字 [^0-9]

\s:匹配单个空白符        \S:匹配单个非空白符

 

2.匹配次数:

. :匹配除了换行符以外的其他任意字符

* :匹配0次或多次 (可以匹配0次)

+ :匹配至少一次或多次

?:匹配0次或1次 (禁止贪婪模式,尽少的去匹配)

{m} :匹配m次

{m,}: 匹配至少m次

{m,n}:匹配m到n次

[] :限制匹配类型的范围   [a,b,c]:匹配a,b,c中的任意一个字符

[^]: 匹配非括号内的字符       [a,b,c]:匹配非a,b,c中的字符

() :分组

| :或;多个条件,配合()使用

^:限制以什么开头    

$:限制以什么结尾

'(?P<ab>)': 分组名为ab匹配

      写规则的时候,前边尽量加r

 

Python正则表达式:

python的re模块提供了正则表达式的功能

import re

①. res = re.match(pattern,string,flags):从字符串的开头用正则规则去匹配指定的字符,返回一个匹配对象,匹配失败返回None

    pattern:正则表达式

     string:被匹配的字符

     flags:标志位,限制匹配的方式

    匹配对象的方法:res.group() 

      date = '今天是2018-01-11'
      res = re.search(r'\d{4}-\d{2}-\d{2}',date)
      res1 = re.search(r'(\d{4})-(\d{2})-(\d{2})',date)
      res2 = re.search(r'(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})',date)
      print(res.group(),res1.group(),res1.group(1))
      print(res2.group('year'),res2.group('month'),res2.group('day'))

   res.groupdict():将匹配结果转为字典类型(可用于分组查询时使用)

   当匹配内容有换行时,可在规则里加上参数re.S

②.re.search(pattern,string,flags):匹配整个字符串,匹配到第一个后就返回

 

③.re.findall():匹配整个字符串,返回所有匹配成功的对象组成列表

 

④.re.sub():搜索并替换符合规则的字符 

    re.sub(正则表达式,替换成的字符串,原字符串)

 

⑤.re.split():以指定的规则分割字符

     参数1:正则表达式

     参数2:要匹配的字符   

    str = 'I love python'
    res = re.split(r'\W+',str)
    res1 = re.split(r'(\W)',str) #以分组为分隔符,分组内容会被保留
    print(res,res1)
    可使用多个分隔符;找不到匹配对象,则返回原字符

⑥.re.compile()
    将正则表达式编译成正则表达式对象,方便复用该正则表达式

  

JS正则表达式:

匹配规则.匹配方法(匹配内容)

书写方式:将正则表达式匹配规则写在 /    / 里面

匹配方法:test():返回布尔值类型,匹配成功返回true

匹配方法:exec():匹配成功返回数组,不存在返回null

 

 

 

 

 

 

 

 

posted @ 2018-12-17 13:24  心做し·  阅读(337)  评论(0)    收藏  举报