Python正则表达式

系统 1748 0

目录

 

 

1、正则表达式语法¶

2、Python正则表达式

1>一般字符

2>字符集合


 

1、正则表达式语法¶

先看图片,大概了解一下正则表达的整体规则

Python正则表达式_第1张图片

Python正则表达式_第2张图片

2、Python正则表达式

1>一般字符

一般字符串,就是特殊制定,根据特殊的字符串进行识别

PS:python进行正则表达的一般步骤

  • 指定好匹配的模式-pattern

  • 选择相应的方法-match,search等

  • 得到匹配结果-group

设定一个输入:input ,并导入需要的re包

            
              import re
input = 'python学习很重要,正则表达也很重要 。 12abcABC789'
            
          
            
              pattern = re.compile(r'正则表达')
re.findall(pattern,input)
            
          

out:    ['正则表达']

2>字符集合

  • [abc] 指定包含字符
  • [a-zA-Z] 来指定所以英文字母的大小写
  • [^a-zA-Z] 指定不匹配所有英文字母
            
              pattern = re.compile(r'[abc]')
re.findall(pattern,input)
            
          

out:  ['a', 'b', 'c']

            
              pattern = re.compile(r'[a-z]')
re.findall(pattern,input)
            
          

out:   ['p', 'y', 't', 'h', 'o', 'n', 'a', 'b', 'c']

            
              pattern = re.compile(r'[a-zA-Z]')
re.findall(pattern,input)
            
          

out:   ['p', 'y', 't', 'h', 'o', 'n', 'a', 'b', 'c', 'A', 'B', 'C']

^非的用法

            
              pattern = re.compile(r'[^a-zA-Z]')
re.findall(pattern,input)
            
          

out:   ['学', '习', '很', '重', '要', ',', '正', '则', '表', '达', '也', '很', '重', '要', ' ', '。', ' ', '1', '2', '7', '8', '9']

或方法

将两个规则并列起来,以‘ | ’连接,表示只要满足其中之一就可以匹配。

  • [a-zA-Z]|[0-9] 表示满足数字或字母就可以匹配,这个规则等价于 [a-zA-Z0-9]
            
              pattern = re.compile(r'[a-zA-Z]|[0-9]')
re.findall(pattern,input)
            
          

out :   ['p', 'y', 't', 'h', 'o', 'n', '1', '2', 'a', 'b', 'c', 'A', 'B', 'C', '7', '8', '9']

匹配数字 ‘\d’ 等价于 [0-9]

            
              pattern = re.compile(r'\d')
re.findall(pattern,input)
            
          

out:  ['1', '2', '7', '8', '9'] 

‘\D’ 匹配非数字

            
              pattern = re.compile(r'\D')
re.findall(pattern,input)
            
          

out:  ['p', 'y', 't', 'h','o', 'n', '学', '习', '很', '重', '要', ',', '正', '则', '表', '达', '也', '很', '重', '要', ' ', '。', ' ', 'a', 'b', 'c', 'A', 'B','C']

‘\W’ 匹配非字母和数字

            
              pattern = re.compile(r'\W')
re.findall(pattern,input)
            
          

out: [',', ' ', '。', ' ']

‘\s’ 匹配间隔符

            
              pattern = re.compile(r'\s')
re.findall(pattern,input)
            
          

out:[' ', ' ']

重复

正则式可以匹配不定长的字符串

‘*’ 0 或多次匹配

            
              pattern = re.compile(r'\d*')
re.findall(pattern,input)
            
          

out: ['', '', '', '', '', '', '', '', '','', '', '', '', '', '', '', '', '', '', '', '', '', '12', '', '', '', '', '', '', '789', '']

‘+’ 1 次或多次匹配

            
              pattern = re.compile(r'\d+')
re.findall(pattern,input)
            
          

out: ['12', '789']

‘?’ 0 或 1 次匹配

            
              pattern = re.compile(r'\d?')
re.findall(pattern,input)
            
          

out: 

['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '1', '2', '', '', '', '', '', '', '7', '8', '9', '']

精确匹配和最小匹配¶

‘{m}’ 精确匹配 m 次

            
              pattern = re.compile(r'\d{3}')
re.findall(pattern,input)
            
          

out: ['789']

 {m,n}’ 匹配最少 m 次,最多 n 次。 (n>m)

            
              pattern = re.compile(r'\d{1,3}')
re.findall(pattern,input)
            
          

['12', '789']

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论