• python技巧


    python小技巧:

    1.强烈建议使用Python的r前缀,就不用考虑转义的问题了。

    2.正则表达式的使用:

    test = '用户输入的字符串'
    if re.match(r'正则表达式', test):
        print('ok')
    else:
        print('failed')
    

    3.如果用户输入了一组标签,下次记得用正则表达式来把不规范的输入转化成正确的数组。

     re.split(r'[s\,;]+', 'a,b;; c  d')
    ['a', 'b', 'c', 'd']
    

    4.凶残的例子:

    1 >>> t = '19:05:30'
    2 >>> m = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9]):(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9]):(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$', t)
    3 >>> m.groups()
    4 ('19', '05', '30')

    5.

    编译

    当我们在Python中使用正则表达式时,re模块内部会干两件事情:

    1. 编译正则表达式,如果正则表达式的字符串本身不合法,会报错;

    2. 用编译后的正则表达式去匹配字符串。

    如果一个正则表达式要重复使用几千次,出于效率的考虑,我们可以预编译该正则表达式,接下来重复使用时就不需要编译这个步骤了,直接匹配:

    1 >>> import re
    2 # 编译:
    3 >>> re_telephone = re.compile(r'^(d{3})-(d{3,8})$')
    4 # 使用:
    5 >>> re_telephone.match('010-12345').groups()
    6 ('010', '12345')
    7 >>> re_telephone.match('010-8086').groups()
    8 ('010', '8086')

    编译后生成Regular Expression对象,由于该对象自己包含了正则表达式,所以调用对应的方法时不用给出正则字符串。

  • 相关阅读:
    leetcode1161
    leetcode1160
    校招真题练习034 倒水(贝壳)
    校招真题练习033 音乐列表(贝壳)
    校招真题练习032 连续相同字符串(头条)
    校招真题练习031 三支球队比分(头条)
    leetcode1144
    ArrayQueue(队列)
    LinkQueue(链队)
    快速幂
  • 原文地址:https://www.cnblogs.com/xiaohaillong/p/5896689.html
Copyright © 2020-2023  润新知