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

    正则表达式总结:

    python支持的字符和语法:
    . 匹配任意除换行符 之外的所有字符
    转义字符 比如说要匹配的字符中含有 . * 等可以使用转义 例如 * . \
    [.....] 直接写要匹配的字符串 例如a[bcd]e
    d 匹配数字
    D 非数字
    s 空白字符 例如:空格 。。。
    S 飞空白字符
    w 匹配字母或数字或下划线或汉字
    W 匹配任意不是字母,数字,下划线,汉字的字符
    ^ 匹配字符串的开始
    $ 匹配字符串的结束
    [^x] 匹配除了x以外的任意字符

    常用的限定符:
    * 重复0次或跟多次 也就是大于等于0
    + 重复1次或跟多次 也就是大于等于1
    ? 重复0次或一次
    {n} 重复n次
    {n,} 重复n或更多次
    {n,m} 重复n到m次
    懒惰限定符:
    .*? 代表除了换行符之外匹配到的最少次数 相当于只匹配一次吧。。
    *?重复任意次但经可能少重复
    +?重复一次或跟多次 尽可能少重复
    ?? 重复0次或1次,但尽可能少重复
    {n,m}? 重复n到m次,但尽可能少重复
    {n,}? 重复n次以上,但尽可能少重复

    例子:

    #-*-coding:utf-8-*-
    #author:wangxing
    #descr:re
    import re
    s1 = '345admin1234yyy'
    s2 = 'admin12341.222'
    s3 = 'adminstratior'

    result = re.match('D+',s2) #match只能够找到字符串的开头匹配到的第一个,result是一个对象
    if result:
    print result.group()
    else:
    print 'Nothing'

    result1 = re.search('d+',s3) #search 匹配字符串所有内容的第一个匹配到的,resul1是一个对象
    if result1:
    print result1.group() #group用于显示匹配到的字符
    else:
    print 'Also Nothing '

    #compile 类似于python文件编译后卫pyc格式,这里是编译后为一个变量,好处是再次执行速度快

    com = re.compile('d+') #compile编译的意思
    print com.findall(s2) #findall是查找到字符串中所有符合条件的内容展示到一个列表中
    print com.split('admin1www3xing4') #按照能够匹配的子串将string分割后返回列表。maxsplit用于指定最大分割次数,不指定将全部分割。

    com1 = re.search(r'(w+)d+(w+)',s2)
    print com1.groups() #groups 只匹配分组的也就是()里面的
    print com1.group() #group 匹配所有表达式匹配到的

  • 相关阅读:
    selenium 操作过程中,元素标红高亮的两种实现方式
    python pytest测试框架介绍五---日志实时输出
    pytest 3.9在python 2.7下的一个bug
    Qt assis tant 帮助集合文档 -由.qhcp生成.qhc
    Qt assistant .qch显示乱码问题
    qhelpgenerator 由qhp生成qch过程碰到的问题 记录
    Qt creator新建widget项目....no valid kits found.....
    Qt creator 账号
    Qt 写Excel
    Qt获取主窗口
  • 原文地址:https://www.cnblogs.com/misswangxing/p/7683340.html
Copyright © 2011-2022 走看看