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

    字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。

    正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。

    python中的正则表达式的语法和元字字符:

    模块

    1、re.match(pattern,string,flags)   ==>从字符串的开始位置匹配。

    例如:

    import re
    a='dhddhfkjhsfd45sdkssl465461256sahgkdshglsahkj'
    b=re.match('dh',a)
    if b:
    print(b.group())
    elif b==None:
    print('没有匹配成功!')

    结果:

    dh

    2、re.findall(pattern,string,flags)   ==>搜索整个字符串并返回一个list。

    例如:

    import re
    a='ahddhfkjhsfd45sdkssl465461256sahgkdshglsahkj'
    b=re.findall('ahd',a)
    if b:
    print(b)
    elif b==None:
    print('没有匹配成功!')

    结果:

    ['ahd']

    3、re.searchl(pattern,string,flags)   ==>搜索整个字符串,找到第一个匹配值后就返回。

    例如:

    import re
    a='dhddhfkjhsfd45sdkssl465461256sahgkdshglsahkj'
    b=re.search('dh',a)
    if b:
    print(b.group())
    elif b==None:
    print('没有匹配成功!')

    结果:

    dh

    4、re.sub(pattern, repl, string, count=0, flags=0) ==>用于替换字符串中的匹配项。

    参数解释:

    • pattern : 正则中的模式字符串。
    • repl : 替换的字符串,也可为一个函数。
    • string : 要被查找替换的原始字符串。
    • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

    例如:

    import re
    a='axfdgdfds'
    b=re.sub('d','|',a)
    if b:
    print(b)
    elif b==None:
    print('没有匹配成功!')

    结果:

    axf|g|f|s

    5、re.compile(pattern,flags)  ==>就是对匹配格式进行了编译,在程序执行时要更快。

    例如:

    a='fsgdssdggsdds'

    p=re.compile('d')

    ma=p.findall(a)

    print(ma)

    结果:

    ['d', 'd', 'd', 'd']

    6、re.split(pattern,stirng,[,maxsplit])==》按照能够匹配的子串将string分割后返回列表。maxsplit用于指定最大分割次数,不指定将全部分割。 

    例如:

    import re 

    p = re.compile(r'd+')

    print p.split('one1two2three3four4')
     
    结果:
    ['one', 'two', 'three', 'four', '']      
     
    如果字符串的最后一位不是数字则返回['one', 'two', 'three', 'four']      
  • 相关阅读:
    EUI组件之DataGroup
    EUI组件之CheckBox
    EUI组件之Button
    EUI组件之BitmapLabel 位图字体
    微信小游戏 egret.getDefinitionByName获取不到
    微信小游戏横屏设置
    本地 win7 与虚拟机Centos7 ping互通和Centos7 上网设置
    Centos7没有ETH0网卡
    Parallels Desktop Centos 设置IP
    2.用Python套用Excel模板,一键完成原亮样式
  • 原文地址:https://www.cnblogs.com/zhangyuxin/p/6279109.html
Copyright © 2011-2022 走看看