zoukankan      html  css  js  c++  java
  • python regularexpress1

    //test.py

    1 import re

      2

      3 print (re.search('www', 'www.myweb.com').span())

      4 print (re.search('com', 'www.myweb.com').span())

      5

      6 line = 'Cats are smarter than dogs'

      7 #matchObj = re.search(r'(.*) are (.*?) (.*?) (.+)', line, re.M|re.I)

      8 #matchObj = re.search(r'(.*) are (.*?) .*', line, re.M|re.I)

      9 matchObj = re.search(r'(.*) are (.*) .*', line, re.M|re.I)

     10 if matchObj:

     11         print 'matchObj.group()', matchObj.group()

     12         print 'matchObj.group(1)', matchObj.group(1)

     13         print 'matchObj.group(2)', matchObj.group(2)

     14         print 'matchObj.groups()', matchObj.groups()

     15 else:

     16         print 'No match'

     17

     18 phone = '2017-989-898' # this is one foreign phone number

     19 num = re.sub(r'#.*$', '', phone)

     20 print 'phone number: ',num

     21 num = re.sub(r'D', '', phone)

     22 print "phone number: ", num

     23

     24 def double(matched):

     25         value = int(matched.group('value'))

     26         return str(value*2)

     27 s = 'A23G4HFD567'

     28 print re.sub(r'(?P<value>d+)', double, s)

    //result

    # python test.py
    (0, 3)
    (10, 13)
    matchObj.group() Cats are smarter than dogs
    matchObj.group(1) Cats
    matchObj.group(2) smarter than
    matchObj.groups() ('Cats', 'smarter than')
    phone number: 2017-989-898
    phone number: 2017989898
    A46G8HFD1134

    Finally:

    稍微解释一下:

    search 搜索匹配不是必须从字符串开始处匹配,任意位置匹配

    span方法是转化匹配对象为原搜索字符串中的位置信息

    r'(.*) are (.*) .*'正则表达式的含义:任意字符重复0次到多次,遇到 are,再次任意字符重复0-多次,直至遇到一个任意字符重复0-多次,显然最后的dogs之前会有smart than,如果是条件r'(.*) are (.*?) .*', dog之前重复0-1次,那么就是smart

    替换的正则表达,r'#.*$',从#号开始到结尾,任意重复0-多次

    r'D',匹配非数字

    r'(?P<value>d+)',匹配数字1-多次,组取名字value,以double函数做替换项(字符串-》数字-》2倍-》字符串),匹配替换

    其实,这个东西,你要用得着时,还是真有用啊!!!

  • 相关阅读:
    “三路九招”打赢电商低成本营销战
    我的文章分类
    ResourceBundle读取中文properties文件问题
    敏捷基础知识
    一个简单方法:构造xml的document,并将其转换为string
    在android源码环境下写上层应用的一个初步解决方法
    Linux 与 unix shell编程指南——学习笔记
    git 分支的基本操作
    使用repo的本地开发流程
    Linux常用命令收集
  • 原文地址:https://www.cnblogs.com/woodzcl/p/7813818.html
Copyright © 2011-2022 走看看