zoukankan      html  css  js  c++  java
  • Python正则表达式x*与x?的区别

    Python正则表达式符号与方法:

    且单字符的x?和x*能找出换行符号,而x则不能.

    程序如下:

    import re
    #. 匹配任意字符,换行符
    除外
    #. 可以看成一个占位符,几个.占几个位置
    #特别的,0个.就占0个位置
    a='xxyxz'
    print('对{0}进行查找
    '.format(a))
    
    b=re.findall('x*',a)
    print('用x*进行查找的结果{0}'.format(b))
    
    b=re.findall('x?',a)
    print('用x?进行查找的结果{0}'.format(b))
    
    b=re.findall('x',a)
    print('用x进行查找的结果{0}'.format(b))
    
    b=re.findall('x.',a)
    print('用x.进行查找的结果{0}'.format(b))

    结果如下:

    对xxyxz进行查找

    用x*进行查找的结果['xx', '', 'x', '', '']
    用x?进行查找的结果['x', 'x', '', 'x', '', '']
    用x进行查找的结果['x', 'x', 'x']
    用x.进行查找的结果['xx', 'xz']

    补充:

    以下结论由几次试验得出,还未证实.

    特别的,对于xy*和xy?末尾多一个字符的字符串去查找会查找出来不含末尾字符的项,而用多两个的字符串则查找不出来任何项. 而xx则不然. 

    特别的,当用连续相同字符查找时,xx*查找结果会找到后面的所有直接相连x, 而xx?则不然.

    程序如下:

     1 import re
     2 a='xxxxyzxyzxys'
     3 print('对{0}进行查找'.format(a))
     4 b=re.findall('xyz*',a)
     5 print('用xyz*进行查找的结果{0}'.format(b))
     6 
     7 b=re.findall('xyz?',a)
     8 print('用xyz?进行查找的结果{0}'.format(b))
     9 
    10 b=re.findall('xx*',a)
    11 print('用xx*进行查找的结果{0}'.format(b))
    12 
    13 b=re.findall('xx?',a)
    14 print('用xx?进行查找的结果{0}'.format(b))

    输出如下:

    对xxxxyzxyzxys进行查找
    用xyz*进行查找的结果['xyz', 'xyz', 'xy']
    用xyz?进行查找的结果['xyz', 'xyz', 'xy']
    用xx*进行查找的结果['xxxx', 'x', 'x']
    用xx?进行查找的结果['xx', 'xx', 'x', 'x']

  • 相关阅读:
    Android5.0 Gallery2上编译Gallery模块出错
    Ubuntu Linux系统下的SVN客户端工具PySVN
    ubuntu下如何安装及使用 pysvn-workbench
    系统数据库开启
    Ubuntu下使用SVN
    Ubuntu Linux 环境变量
    android 权限管理和签名 实现静默卸载
    Android系统权限及签名
    Android Security
    《Java程序猿面试笔试宝典》之字符串创建与存储的机制是什么
  • 原文地址:https://www.cnblogs.com/zhangziyan/p/9094506.html
Copyright © 2011-2022 走看看