zoukankan      html  css  js  c++  java
  • 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对象,由于该对象自己包含了正则表达式,所以调用对应的方法时不用给出正则字符串。

  • 相关阅读:
    C# WM_NCMOUSELEAVE 消息触发
    C#常用集合的使用(转载)
    关于直播,所有的技术细节都在这里了(转载)
    C# Winform 窗体美化
    正则表达式符号全解析
    C#中List<T>转DataTable
    C#中的Queue集合
    C#中Stack集合
    智能信息处理
    Mysql
  • 原文地址:https://www.cnblogs.com/xiaohaillong/p/5896689.html
Copyright © 2011-2022 走看看