zoukankan      html  css  js  c++  java
  • Python 正则表达式中的group参数使用

    Python正则表达式re模块中有个group参数,刚开始看的时候没理解,自己摸索了一下,终于知道是啥意思了,记录一下。

    先看一下教程中对这个参数的说明:

     老实讲,看了这个描述我也没懂是啥意思,于是在PyCharm中试了下,才知道是啥意思,先看下代码:

    
    
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-

    import re


    def dirp(iter): # 定义函数dirp
    return [i for i in dir(iter) if not i.startswith('_')] # 将dir(iter)的值中过滤掉前面带_的数据后,赋值给变量i,然后将i的值赋值给dirp函数


    # 定义一个变量a,并将字符串“name”赋值给变量a,字符串前面加个r是告诉编译器这个string是个raw string,不要转意
    a = r"name"
    # print(dirp(re))
    # 定义一个变量match
    match = re.search(a, "my name is sam,what is you name?")
    if match:
    print(match.group()) # 在字符串“my name is sam,what is you name?”中搜索“name”,如果存在就打印出来
    print(match.start()) # 如果有就打印该字符的开始位置,字符串“my name is sam,what is you name?”的m是第0位
    print(match.end()) # 打印字符串的结束位置
    print(match.span()) # 打印字符串的开始位置和结束位置
    print(type(match.group)) # 打印match.group()的类型


    www = r"www.cnblogs.com"
    print(re.match(r"(www).(cnblogs).(com)", www).group()) # 打印全部匹配结果,注意每个括号匹配值必须接上一个括号,否则会报错
    print(re.match(r"(www).(cnblogs).(com)", www).group(1)) # 打印第一个括号中的匹配结果
    print(re.match(r"(www).(cnblogs).(com)", www).group(2)) # 打印第二个括号中的匹配结果
    print(re.match(r"(www).(cnblogs).(com)", www).group(3)) # 打印第三个括号中的匹配结果
    print(re.match(r"(www).cnblogs.(com)", www).group(2)) # 打印第二个括号中的匹配结果
    print(re.match(r"(www).(cnblogs).(com)", www).groups()) # 打印所有括号的匹配结果,但是返回的结果是一个元组

    line = "Cars are smarter than dog."

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

    if matchObj:
    print("matchObj.group(): ", matchObj.group())
    print("matchObj.group(1): ", matchObj.group(1))
    print("matchObj.group(2): ", matchObj.group(2))
    else:
    print("No match!!")
     

    执行后查看输出结果:

    C:UsersAdministratorAppDataLocalProgramsPythonPython35-32python.exe C:UsersAdministratorDesktopmypython e_test.py
    name
    3
    7
    (3, 7)
    <class 'builtin_function_or_method'>
    www.cnblogs.com
    www
    cnblogs
    com
    com
    ('www', 'cnblogs', 'com')
    matchObj.group(): Cars are smarter than dog.
    matchObj.group(1): Cars
    matchObj.group(2): smarter

    进程已结束,退出代码0

    从结果中可以看出来,group这个参数的意思就是给出多个匹配值,然后在字符串中进行匹配,然后输出对应的匹配结果,group(),这个()中的数字按从左往右的顺序1,2....进行排列(注意只有用()括起来的匹配值才算),然后还要注意就是每个匹配值之间要能接上,比如匹配值写成下面这样的话就会报错,因为匹配值之间少了个点,匹配的值就接不上:

    "(www)(cnblogs)(com)"


  • 相关阅读:
    Git——新手入门与上传项目到远程仓库GitHub
    在树莓派上用Python控制LED
    树莓派从 DHT11 温度湿度传感器读取数据
    树莓派使用DHT11温湿度传感器(C语言程序)
    树莓派使用DHT11温湿度传感器(C语言)
    树莓派连接DHT11温湿度传感器(python)
    教你在树莓派使用上RTC实时时钟,不用再担心断电后时间归零的问题,开机后自动同步RTC时钟!!!
    【手把手教你树莓派3 (一)】装机
    【手把手教你树莓派3 (二)】 启动wifi模块
    Notes on Noise Contrastive Estimation and Negative Sampling
  • 原文地址:https://www.cnblogs.com/xzy186/p/14261237.html
Copyright © 2011-2022 走看看