正则表达式基础

一起回顾一下正则表达式.

特殊字符

正则表达式特殊字符.png

  • "^" 以开头
  • "$" 以结尾
  • "." 除‘/n’外的任意字符
  • "*" 任意多次
  • "?" 非贪婪模式
  • "+" 至少出现一次
  • "{2}" 出现2次
  • "{2,}" 出现至少2次
  • "{2,5}" 出现2次到5次
  • "|" 或
  • "[]" 满足[]中任意一个就可以[a,b][0-9]
  • "[^]" 取反[^1]不是1就可以
  • "\s" 空格
  • "\S" 不为空格
  • "\w" [a-zA-Z0-9_]中一种就可以
  • "\W" "\w"取反
  • "[\u4E00-\u9FA5]" 中文
  • "()" 要提取出来的内容
  • "\d" 数字

Python例子

import re

line1 = "XXX出生于2008年8月8日"
line2 = "XXX出生于2008/8/8"
line3 = "XXX出生于2008-8-8"
line4 = "XXX出生于2008-08-08"
line5 = "XXX出生于2008-08"

regex_str = ".*出生于(\d{4}[年/-]\d{1,2}([月/-](\d{1,2}日|\d{1,2}|)|$))"
match_obj = re.match(regex_str, line4)
print(match_obj)
if match_obj:
    print(match_obj.group(1))

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏谈补锅

C语言之字符、整数、数组、字符串笔记

每种类型占用内存空间不一样,比如char占一个字节,short占2个字节,int占4个字节,double占8个字节

3393
来自专栏老司机的技术博客

宝宝都能学会的python编程教程5:循环-2

“死循环”是必须要避免的,当然“活循环”也未必都要执行完。 break 语句 比如我们要从一个列表中找到某个特定元素,那么只要找到了这次循环就可以停止了,没有必...

3645
来自专栏章鱼的慢慢技术路

《算法图解》第三章笔记与课后练习

1825
来自专栏章鱼的慢慢技术路

《算法图解》第三章笔记与课后练习_递归

1463
来自专栏蓝天

shell数组

$ A=(a b c def) ================================================== $ echo ${A[@...

1104
来自专栏专注数据中心高性能网络技术研发

[C++]C++面试知识总结

1.程序运行知识 1.1 内存布局和分配方式 C程序的内存布局如下: ? 静态存储区:存储全局变量和static变量,通常在程序编译期间已经分配好了。 BSS...

3124
来自专栏Android机器圈

静态变量和实例变量的区别(配图解释专业术语,通俗易懂)

1:首先在语法定义上区别:静态变量前面要加static,实例变量不用 2:在程序运行时:实例变量输入对象的属性,必须创建了实例对象(如 new)才会被分配空间...

34013
来自专栏mukekeheart的iOS之旅

OC学习2——C语言特性之函数

1、OC是在C语言的基础上进行扩展的,在OC中直接用C语言进行coding也是可以通过编译的。因此,函数定义的语法格式如下: 函数返回值类型 函数名(形参列表...

3037
来自专栏企鹅号快讯

宝宝都能学会的python编程教程5:循环-2

“死循环”是必须要避免的,当然“活循环”也未必都要执行完。 break 语句 比如我们要从一个列表中找到某个特定元素,那么只要找到了这次循环就可以停止了,没有必...

2007
来自专栏函数式编程语言及工具

泛函编程(11)-延后计算-lazy evaluation

     延后计算(lazy evaluation)是指将一个表达式的值计算向后拖延直到这个表达式真正被使用的时候。在讨论lazy-evaluation之前...

2096

扫码关注云+社区