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

    使用的特殊符号:

    *   匹配前面出现的正则表达式0次或多次

    +   匹配前面出现的正则表达式1次或多次

    ?  匹配前面出现的正则表达式0次或1次

    re1|re2  匹配正则表达式re1或re2

    ^   匹配字符串的开始

    $   匹配字符串的结尾

    .   匹配任何字符(换行符除外)

    {N}   匹配前面出现的正则表达式出现N次

    使用的字符

    d   匹配任何数字,和[0-9]一样(D是d的反义:任何非数字符)

    w   匹配任何数字字母字符,和[A-Za-z0-9]相同(W是w的反义)

    s   匹配任何空白符,和[ vf]相同,(S是s的反义)

       匹配单词边界(B是的反义)

    A   匹配字符串的开始

       匹配字符串的结束

    >>> import re

    >>> str = 'abc123def12gh1'

    >>> p1 = re.compile('d+')
    >>> print p1.findall(str)
    ['123', '12', '1']
    >>>
    >>> p2 = re.compile('d')
    >>>
    >>> print p2.findall(str)
    ['1', '2', '3', '1', '2', '1']
    >>>

    >>> str = 'a@163.com;b@gmail.com;c@qq.com e0@163.com;f@qq.com'
    >>> p3 = re.compile('w+@163.com')
    >>> print p3.findall(str)
    ['a@163.com', 'e0@163.com']
    >>>
    >>> p4 = re.compile('w+@[163|qq].com')
    >>> print p4.findall(str)
    []
    >>> p4 = re.compile('w+@[163|qq]+.com')  #  w+  @前面一个或多个数字或字母, .com  为转义字符
    >>> print p4.findall(str)
    ['a@163.com', 'c@qq.com', 'e0@163.com', 'f@qq.com']

    >>> str = '<html><h>title</h><body>xxx</body></html>'
    >>> p5 = re.compile('<h>[^<]+</h>')   # [^<]+表示不是尖括号<
    >>> print p5.findall(str)
    ['<h>title</h>']
    >>>
    >>> p5 = re.compile('<h>([^<]+)</h><body>([^<]+)</body>')  #圆括号用来指定找的部分
    >>> print p5.findall(str)
    [('title', 'xxx')]

    >>> str = 'xx2016-06-11yy'
    >>> p6 = re.compile('d{4}-d{2}-d{2}')    #d{4}  数字出现4次
    >>> print p6.findall(str)
    ['2016-06-11']

    >>> p7 = re.compile('dddd-dd-dd')
    >>> print p7.findall(str)
    ['2016-06-11']

  • 相关阅读:
    子线程循环10次,接着主线程循环100,接着又回到子线程循环10次.....如此循环50次
    java面向对象中的String类中12种常用的方法
    网络编程TCP协议-聊天室
    网络编程(UDP协议-聊天程序)
    Swing布局管理器
    java排序方法中的选择排序方法
    java排序方法中的插入排序方法
    java数组中的三种排序方法中的冒泡排序方法
    css3模仿雨滴(附源码)
    html5+css3实现3D图片(附源码)
  • 原文地址:https://www.cnblogs.com/toudoubao/p/6705622.html
Copyright © 2011-2022 走看看