zoukankan      html  css  js  c++  java
  • python之正则表达式

      1 #正则表达式 - re  #re模块
      2 import re
      3 # . 通配符,除换行符(
    )之外的符号 , .代表一个元素
      4 # str1 = 'songqin'
      5 # #re.findall()   ,必填参数2个,第一个正则表达式,第二个是需求处理的字符串,还有一个缺省值
      6 # res = re.findall('s.',str1) #findall,查找所有符合要求的内容,不止一个,用list存储,返回值是列表
      7 # print(res)
      8 
      9 # * ,*前面的元素可以出现0次或多次
     10 str1 = 'songqin'
     11 res = re.findall('s.*',str1)
     12 print(res)
     13 
     14 str1 = 'songqinsoo'
     15 res1 = re.findall('so*',str1)
     16 print(res1)  #['so', 's']  这个s后面的o可以出现0次或者多次
     17 
     18 # +,+前面的元素至少出现一次或者多次
     19 str1 = 'songqin'
     20 res2 = re.findall('s.*',str1)
     21 print(res2)
     22 
     23 # ? ,组合用法:(.*?)  (.+?)
     24 #a123456b  a(.*?)b  取出来的是123456 ,左右夹击
     25 
     26 #w 匹配字母数字下划线
     27 str1 = 'songqin'
     28 res3 = re.findall('w',str1)
     29 print(res3)
     30 
     31 str2 = 'songqin'
     32 res3 = re.findall('w{3}',str2) #['son', 'gqi'] 表示要3个连续的字母数字下划线组合
     33 print(res3)
     34 
     35 #W 匹配非字母数字下划线
     36 str3 = 'songqin1231='
     37 res4 = re.findall('W',str3)
     38 print(res4)
     39 
     40 str3 = 'songqin1231='
     41 res4 = re.findall('W{3}',str3)#表示要3个连续的非字母数字下划线组合
     42 print(res4)
     43 #S 匹配任意非空字符
     44 
     45 str11 = 'songq  '
     46 res4 = re.findall('S',str11)#表示要3个连续的非字母数字下划线组合
     47 print(res4)
     48 #d 匹配任意数字,等价于[0-9]
     49 
     50 str5 = 'songqin123aaa1=a'
     51 res5 = re.findall('d.+d',str5) #把中间数字一起取出
     52 print(res5)
     53 
     54 str5 = 'songqin123a456aaaa'
     55 res8 = re.findall('d+d',str5) #把中间数字一起取出
     56 #两种方式输出结果
     57 print(res8)
     58 print(''.join(res8))
     59 
     60 #D 匹配任意非数字
     61 str6 = '123aaasongqina331'
     62 res6 = re.findall('D.+D',str6) #把中间数字一起取出
     63 print(res6)
     64 
     65 
     66 #^  匹配字符串的开头
     67 
     68 
     69 #$ 匹配字符串的末尾
     70 
     71 
     72 
     73 
     74 
     75 #正则提取邮箱邮箱
     76 import re
     77 pattern = re.compile('w[-w.+]*@([A-Za-z0-9][-A-Za-z0-9]+.)+[A-Za-z]{2,14}')
     78 str = u'1135384311@qq.com'
     79 print(pattern.search(str))
     80 #身份证号
     81 import re
     82 pattern = re.compile('d{17}[d|x]|d{15}')
     83 str = u'362204199410288416'
     84 print(pattern.search(str))
     85 #手机号
     86 import re
     87 pattern = re.compile('^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$')
     88 str31 = u'18702629780'
     89 print(pattern.search(str31))
     90 
     91 #re模块常见方法
     92 # re.compile(pattern[,flags])
     93 #用于编译正则表达式,生成一个正则表达式(pattern)对象,供match()和search()这两个函数调用
     94 
     95 # 正则表达式re.findall()与re.finditer()的区别
     96 #re.findall()如果可以匹配返回的是一个列表,re.finditer()返回的是一个迭代器,需要对其进行遍历,才能获取数据。
     97 
     98 #re.split 能够匹配的子串将字符串切割后返回列表
     99 
    100 # re模块修饰符
    101 re.I #使匹配对大小写不敏感
    102 re.S #使.匹配包括换行符在内的所有字符
    103 
    104 str1 = 'songqinSo
    '
    105 res2 = re.findall('so*',str1,re.I | re.S)  #re.I #使匹配对大小写不敏感
    106 print(res2)
  • 相关阅读:
    Agile software architecture design document style..( sketches and no UMLs)
    spring mvc 使用Optional
    API reference for many languages..
    Java 8: Lambdas和新的集合Stream API
    Java 8 Stream API Example Tutorial
    小团队开发管理工具:gitlab+redmine+testlink+jenkins
    达到一定高度,回到头部的代码
    一款非常简单的android音乐播放器源码分享给大家
    高仿精仿开心网应用android源码
    很不错的安卓FadingActionBar控件源码
  • 原文地址:https://www.cnblogs.com/zhaobobo001/p/14418432.html
Copyright © 2011-2022 走看看