zoukankan      html  css  js  c++  java
  • Python正则表达式的简单应用和示例演示

    前一阵子小编给大家连续分享了十篇关于Python正则表达式基础的文章,感兴趣的小伙伴可以点击链接进去查看。今天小编给大家分享的是Python正则表达式的简单应用和示例演示,将前面学习的Python正则表达式做一个概括。

    下面的栗子是用于提取高考日期,一般来说,我们填写日期都会写2018年6月7日,但是也有很多人会写成2018/6/7、2018-6-7、2018-06-07等,还有的人可能会写为2018-06或者2018年6月。总之对日期的写法五花八门,那么我们现在需要写一个正则表达式来统一匹配这么多的情况,应该如何来处理呢?具体的教程如下所示。

    1、首先我们先写个简单的正则表达式,然后一步步经过测试,慢慢达到匹配的效果。

    这个正则表达式比较复杂,一下子可能看不懂,小编带大家一层一层的进行理解。

    2、我们从左到右对正则表达式进行分析,首先“.*”代表的是任意字符出现任意多次,对应原始字符中的“XXX”;“高考时间是”没有什么特别的,就是对应原始字符串中的“高考时间是”。

    3、接下来是“d{4}”代表的是连续出现4个数字,对应原始字符串中的年份“2018”;“[年/-]”表示取“年”、“/”、“-”中的任意一个字符,对应原始字符串中年份“2018”之后所连接的下一个字符。

    4、继续往后是“d{1,2}”代表的是连续出现1个到2个数字,对应原始字符串中的月份“6”或者“06”;“[月/-]”表示取“月”、“/”、“-”中的任意一个字符,对应原始字符串中月份“6”或者“06”之后所连接的下一个字符,同年份的理解如出一辙。

    5、接下来就复杂一些了,其中“d{1,2}”的理解同月份的理解一致,关键是关于“日”的提取主要需要注意有的字符串有日期,有的字符串并没有日期,所以需要特殊字符“|”来表示“或”的关系,并且用特殊字符“$”来表示结束。

    6、理解了上述关系之后,接下来依次验证六个原始字符串,看看是否能匹配成功。下图是原始字符串string2的匹配情况。

    发现可以匹配得上。

    7、下图是原始字符串string3的匹配情况。

    发现可以匹配得上。

    8、下图是原始字符串string4的匹配情况。

    发现可以匹配得上。

    9、下图是原始字符串string5的匹配情况。

    发现这种模式并不能匹配上,这是什么原因呢?

    10、原因是月份“d{1,2}”后面限定要跟“[月/-]”,而原始字符串string5的时间为“2018-06”,其后面没有任何的字符就结束了,也匹配模式搭配不上,因此在这里需要改进一下。

    需要利用特殊字符“|”和特殊字符“$”,做一个“或”的选择,如上图所示,之后就可以匹配成功了。

    当然也可以直接把“[月/-]”一起加入到第二个括号里,如下图所示,这种方式更为简便。

    11、下图是原始字符串string6的匹配情况。

    可以看到此时可以成功匹配。

    经过测试可以发现,此时改进后的字符串对6种不同日期的字符串都可以成功匹配。小伙伴们,有没有感受到正则表达式的魔力呢?

  • 相关阅读:
    SAP应用界面开发:1)SELECTOPTIONS对象
    ABAP工作区,内表,标题行的定义和区别
    Open SQL:6)Open SQL 增刪查改(CRUD)
    SAP应用界面开发:2)PARAMETERS对象
    Open SQL:5)Open SQL获取数据行数限制
    Open SQL:3)多个表数据连接查询
    Open SQL:4)参照内表条件进行查询
    Open SQL:7)动态WHERE条件内表
    SAP应用界面开发:3)SELECTIONSCREEN 对象(1)
    SAP应用界面开发:3)Text Elements(文本元素)对象
  • 原文地址:https://www.cnblogs.com/dcpeng/p/9885571.html
Copyright © 2011-2022 走看看