zoukankan      html  css  js  c++  java
  • python正则表达式(. *)(一)

    1.正则表达式在线验证工具:https://regex101.com/

    2.常见语法:

    写在正则表达式里面的普通字符都是表示:直接匹配它们。

    比如 你下面的文本中,如果你要找所有的test,正则表达式就非常简单,直接输入test即可:

    汉字也是一样,要寻找汉字,直接写正则表达式里面就可以了

    但是有些特殊字符,术语叫metacharacters(元字符)

    它们出现在正则表达式字符串中,不是表示直接匹配他们,而是表达一些特别的含义,这些特殊的元字符包括下面这些:

    ^ $ . * + ? = ! : | / ( ) [ ] { }

    我们分别介绍一下它们的含义:

    点—匹配所有字符

    . 表示要匹配除了 换行符 之外的 单个 字符

    比如,你要从下面的文本中,选择所有的颜色

    苹果是绿色的
    橙子是橙色的
    香蕉是黄色的
    乌鸦是黑色的
    

     也就是要找到所有以 色 结尾,并且包括前面的一个字符的词语

    就可以这样写正则表达式  .色

    其中点代表了任意的一个字符,注意是一个字符

    .色 合起来就表示要找任意一个字符后面是 色 这个字,合起来两个字的字符串

    只要表达式正确,就可以写在python代码中,如下所示

    content="苹果是绿色的
    橙子是橙色的
    香蕉是黄色的
    乌鸦是黑色的"
    import re
    p=re.compile(r'.色')
    for one in p.findall(content):
        print(one)
    
    '''
    运行结果如下:
    绿色
    橙色
    黄色
    黑色 

     星号-重复匹配任意次

    *表示匹配前面的子表达式任意次,包括0次

    比如,你要从下面的文本中,选择每行逗号后面的字符串内容,包括逗号本身,注意,这里的逗号是中文的逗号

    苹果,是绿色的
    橙子,是橙色的
    香蕉,是黄色的
    乌鸦,是黑色的
    猴子,

    就可以这样写正则表达式  ,.*

    * 紧跟在 . 后面,表示任意字符可以出现任意次,所以整个表达式的意思就是在逗号后面的所有字符,包括逗号

    特别是最后一行,猴子逗号后面没有其他字符了,但是*表示可以匹配0次,所有表达式也是成立的

    只要表达式正确,就可以写在python代码中,如下所示

    content="苹果,是绿色的
    橙子,是橙色的
    香蕉,是黄色的
    乌鸦,是黑色的
    猴子,"'
    import re
    p=re.compile(r' ,.*')
    for one in p.findall(content):
        print(one)
    
    '''
    运行结果如下:
    ,是绿色的
    ,是橙色的
    ,是黄色的
    ,是黑色的
    , 
    '''
    

     注意, .*在正则表达式中非常常见,表示匹配任意字符任意次数

    当然这个*前面不是非得是点,也可以是其它字符,比如

  • 相关阅读:
    10 行 Python 代码,批量压缩图片 500 张,简直太强大了
    听说苏州是互联网的荒漠,真的吗?
    sum() 函数性能堪忧,列表降维有何良方?
    len(x) 击败 x.len(),从内置函数看 Python 的设计思想
    如何给列表降维?sum()函数的妙用
    Shell脚本关于循环的一些总结
    大技霸教你远程执行Linux脚本和命令
    老板对我说,你要是能找出公司里摸鱼的人,我就给你涨薪!于是我写了两个脚本……
    Linux 命令行下搜索工具大盘点,效率提高不止一倍!
    饿了么总监分享:我是如何完成从程序员到管理层的蜕变?
  • 原文地址:https://www.cnblogs.com/wxcx/p/12599459.html
Copyright © 2011-2022 走看看