正则表达式—特殊表达式含义

正则表达式的字母和数字表示他们自身,但多数字母和数字前加一个反斜杠时会拥有不同的含义。

下面列出了正则表达式模式语法中的特殊元素。

1.普通字符集

1)    \w              匹配字母数字及下划线

2)    \W              匹配非字母数字及下划线

3)    \s               匹配任意空白字符,等价于 [\t\n\r\f].

4)    \S               匹配任意非空白字符

5)    \d               匹配任意数字,等价于 [0-9]

6)    \D              匹配任意非数字

7)    \1...\9            匹配第n个分组的内容。

8)    [a-zA-Z0-9]    匹配任何字母及数字

2.数量字符集

用在字符或分组符(...)之后,默认贪婪匹配,如果想抑制贪婪匹配,需在数量字符后加?,例如:\w+?

1) .    匹配任意字符,除了换行符,当re.DOTALL标记被指定时,可以匹配包括换行符的任意字符

2)  *        匹配前一个字符0次1次或多次

3)  +        匹配前一个字符1次或多次

4)  ?        匹配前一个字符0次或1次

5)  {m}     匹配前一个字符m次

6)  {m,n}   匹配前一个字符m到n次

7)  {m,}     匹配前一个字符至少m次

8)  {,n}      匹配前一个字符0到n次,最多n次

3.边界匹配符

1)  ^       匹配字符串开头,如果是多行则匹配每一行的开头

2)  [^]       在[...]中,^表示否定,如非字母[^a-zA-Z],非数字[^0-9]

3)  $       匹配字符串或一行的结尾,如果是多行匹配模式,则每一行的结尾

4)  \A       仅匹配字符串的开始,同^

5)  \b        匹配一个单词的边界,也就是指单词和空格间的位置

6)  \B       等价于[^\b]表示匹配非单词边界

7)  \Z       匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。

8)  \z        匹配字符串结束

4.逻辑匹配符

1)  |(或)

    匹配 | 左右任意一种正则表达式,如果左边表达式匹配上,匹配结束,不再匹配右边的正则表达式,该符号一般放在()中使用,如果没在圆括号中则它的范围是整个正则表达式

2)  分组 (...)

    后向引用,用()括起来的正则表达式将被作为一个分组,从正则表达式的左边依次算起,有多少个左括号'(',就有 多少个分组,分组的编码从1依次加1,无论是括号中嵌套括号,并且分组表达式作为一个整体,后可接数量词。

3)  \<number>

    引用分组匹配到的分组编号为<number>的字符串 如:\1...\9

4)  (?P<name>...)

    命名分组,除了默认的分组编号外再指定一个别名分组

    注意:P是大写

5)  (?P=name)

    引用别名为name的分组匹配,这个是在正则表达式中引用,表示匹配重复的字符串,也可以使用编号引用。

    注意:P是大写

5.特殊匹配符

1)  (?imx)     正则表达式包含三种可选标志:i, m, 或 x 。只影响括号中的区域。

2)  (?-imx)      正则表达式关闭 i, m, 或 x 可选标志。只影响括号中的区域。

3)  (?:...)        匹配到的括号内字符串不作为分组

4)  (?!pattern)       前向否定断言语法,表示否定开头

          只能用在正则表达式的开头,pattern是匹配模式,它后面的内容需要不匹配 该正则表达式才匹配成功

5)  (?<!pattern)   后向否定断言语法,表示否定结尾

           前面的内容需要不匹配该pattern模式才匹配成功

6)  (?=pattern)   前向肯定断言语法.

          需要匹配pattren模式才能匹配成功,表示肯定前面的字符内容

7)  (?<=pattern)    后向肯定断言语法

         需要匹配pattern模式才能匹配成功,表示肯定后面的字符内容

8)     (?#...)           #后面的内容将被作为注释而忽略

python正则表达式(1)--特殊字符的更多相关文章

  1. Python正则表达式初识(二)

    前几天给大家分享了Python正则表达式初识(一),介绍了正则表达式中的三个特殊字符“^”.“.”和“*”,感兴趣的伙伴可以戳进去看看,今天小编继续给大家分享Python正则表达式相关特殊字符知识点. ...

  2. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  3. 比较详细Python正则表达式操作指南(re使用)

    比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...

  4. Python天天美味(15) - Python正则表达式操作指南(re使用)(转)

    http://www.cnblogs.com/coderzh/archive/2008/05/06/1185755.html 简介 Python 自1.5版本起增加了re 模块,它提供 Perl 风格 ...

  5. python 正则表达式汇总

    一. 正则表达式基础 1.1.概念介绍 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分. 其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同. 它拥 ...

  6. 一篇搞定Python正则表达式

    1. 正则表达式语法 1.1 字符与字符类 1 特殊字符:\.^$?+*{}[]()| 以上特殊字符要想使用字面值,必须使用\进行转义 2 字符类    1. 包含在[]中的一个或者多个字符被称为字符 ...

  7. python正则表达式re模块详细介绍

    转自:http://www.jb51.net/article/50511.htm 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这 ...

  8. Python 正则表达式 (python网络爬虫)

    昨天 2018 年 01 月 31 日,农历腊月十五日.20:00 左右,152 年一遇的月全食.血月.蓝月将今晚呈现空中,虽然没有看到蓝月亮,血月.月全食也是勉强可以了,还是可以想像一下一瓶蓝月亮洗 ...

  9. Python正则表达式很难?一篇文章搞定他,不是我吹!

    1. 正则表达式语法 1.1 字符与字符类 1 特殊字符:.^$?+*{}| 以上特殊字符要想使用字面值,必须使用进行转义 2 字符类 1. 包含在[]中的一个或者多个字符被称为字符类,字符类在匹配时 ...

随机推荐

  1. 【NPDP笔记】第一章 新产品开发战略

    1.1 战略很重要 1.2 战略定义 使命/愿景/核心价值观:成为领导者 公司/经营战略:市场份额扩大10% 创新战略:强调技术,外部合作 职能战略:IT战略,人力资源战略 1.3明确组织方向 组织身 ...

  2. spring boot连接mysql8.0

    今天spring boot的项目数据库从mysql5.7换到mysql8.0,遇到点问题,特此记录下来 查看mysql的版本 mysql> select version();+--------- ...

  3. C#中各种Lock的速度比较

    简单写了个小程序,比较了一下C#中各种Lock的速度(前提是都没有进入wait状态). 各进入离开Lock 1kw次,结果如下: Lock Time (ms) No lock 58 CriticalS ...

  4. Linux文件的基本操作函数

    1.Linux文件的基本操作 Linux文件的基本操作主要包括了文件的创建.打开.读写和关闭等基本操作. 1.1.文件操作系统调用 (1)创建文件系统函数 int creat(const char * ...

  5. 微信JS从1.0.0升级到1.1.2的一个坑

    因为1.0.0不支持电脑端日期Picker滚动,升级成了1.1.2,结果发现日期选择不起作用了经过跟踪发现 通过控制台查看 resut[1].toString()居然是number类型,修改代码为() ...

  6. windows和linux环境下java调用C++代码-JNI技术

    最近部门做安卓移动开发的需要调C++的代码,困难重重,最后任务交给了我,查找相关资料,没有一个教程能把不同环境(windows,linux)下怎么调用说明白的,自己在实现的过程中踩了几个坑,在这里总结 ...

  7. qt5信息提示框QMessageBox用法(很全)

    information QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes ...

  8. PTA A1017

    A1017 Queueing at Bank (25 分) 题目内容 Suppose a bank has K windows open for service. There is a yellow ...

  9. Java函数式编程

    函数式编程 从JDK1.8开始为了简化使用者进行代码的开发,专门提供有lambda表达式的支持,利用此操作形式可以实现函数式的编程,对于函数编程比较著名的语言是:haskell.Scala,利用函数式 ...

  10. Kafka启用SASL_PLAINTEXT动态配置JAAS文件的几种方式

    Kafka是广泛使用消息服务,很多情况下关于认证部分我都是默认的配置,也就是不需要用户名/密码,也不配置证书.在内网或者在项目组内部可以,但是设计的跨部门时一般处于安全考虑都需要加上认证,防止kafk ...