• Python合集之Python正则表达式(一)


        在处理字符串时,经常会有查找符合某些复杂规则的字符串的需求。正则表达式就是用于描述这些规则的工具。

    1.行定位符

    行定位符就是用来描述字符串的边界,“^”表示行的开始,“$”表示行的结尾。

    ^tm

    该表达式表示要匹配字符串tm的开始位置是行头,如:“tm equal Tomorrow Moom”可以匹配,而“Tomorrow Moon equal tm”则不匹配。但使用:

    tm$

    后者可以匹配而前者不能匹配。如果要匹配的字符串可以出现在字符串的任意部分,那么可以直接写成下面的格式:

    tm

    2.元字符

    除了前面介绍的元字符 “^”和“$”,正则表达式里还有更多的元字符,例如:

    mrw*

    上面的正则表达式用于匹配以字母mr开头的单词,先从某个单词开始处()然后匹配字母mr,接着是任意数量的字母或数字(w*)最后单词结束处()该表达式可以匹配“mrsoft”、“ mr”、“mr123456”等,但不能与“amr”匹配。

    代码 说明 举例
    . 匹配除换行符以外的任意字符 .可以匹配“mr M R”中的m、r、M、 、R
    w 匹配字母、数字、下划线和汉字 w可以匹配“m中7 n”中的“m、中、7、r”,但不能匹配“ ”
    W 匹配除了字母、数字、下划线或汉字以外的字符 W可以匹配“m中7 n”中的“ ”,但不能匹配“m、中、7、r”
    s 匹配单个的空白符(包括TAB键和换行符) s可以匹配“mr MR”中的“ ”
    S 除单个空白符(包括Tab键和换行符)以外的所有字符 S可以匹配“mr MR”中的“m 、r、 M、 R”
     匹配单词的开始或结束,单词的分界符通常是空格,标点符号或者换行

    在"I like mr or am"字符串中, m与mr中的m相匹配,但与am中的m不匹配

    d 匹配数字 d可以匹配“m7ri”中的“7”

    3.限定符

    在上面的例子中,使用(w*)匹配任意数量的字母或数字,如果想要匹配特定数量的数字,该如何表示呢?正则 表达式为我们提供了限定符(指定数量的字符)来实现此功能,如匹配8位QQ号可以使用如下的表达式:

    ^d{8}$
    限定符 说明 举例
    ? 匹配前面字符零次或者一次 colou?r,该表达式可以匹配colour和color
    + 匹配前面的字符一次或多次 go+gle,该表达式可以匹配的范围从gogle到goo...gle
    * 匹配前面的字符零次或多次 go*gle,该表达式可以匹配的范围从ggle到goo...gle
    {n}

    匹配前面的字符n次

    go{2}gle,该表达式只匹配google
    {n,}

    匹配前面的字符最少n次

    go{2,}gle,该表达式可以匹配的范围从google到goo...gle
    {n,m} 匹配前面的字符最少n次,最多m次 employe{0,2},该表达式可以匹配employ,employe、employee

    花絮:

    本期的Python 字符串正则表达式就分享到这里,下期我们将继续分享Python字符串正则表达式的相关知识,感兴趣的朋友可以关注我。

    同时也可以关注下我的个人 微信订阅号,园子里面的文章也会第一时间在订阅号里面进行推送跟更新。

  • 相关阅读:
    16.10.16学到的JAVA知识
    参数类型转换求和(JAVA)
    大道至简第一篇读后感之愚公移山(伪代码)
    First
    18.10.22 luoguP3374 【模板】树状数组 1
    18.10.16 luoguP3372 线段树模板-区间更新值&求和(POJ3468 A Simple Problem with Integers)
    18.10.16 POJ 2528 Mayor's posters(线段树+离散化)
    18.10.15 POJ 2182 Lost Cows(线段树)
    18.10.10 数算作业-字符串
    18.10.9 不好做的最长上升子序列(nlogn树状数组解LIS)
  • 原文地址:https://www.cnblogs.com/a-mumu/p/14471954.html
Copyright © 2020-2023  润新知