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

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

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

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) \

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

4) (?P...)

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

注意:P是大写

5) (?P=name)

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

注意:P是大写

5.特殊匹配符

1) (?imx)

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

2) (?-imx)

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

3) (?:...)

匹配到的括号内字符串不作为分组

4) (?!pattern)

前向否定断言语法,表示否定开头

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

5) (?

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

6) (?=pattern)

前向肯定断言语法.

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

7) (?<=pattern)

后向肯定断言语法

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

8) (?#...)

#后面的内容将被作为注释而忽略

1 #coding=utf-8

2 importre3 #1. 写一个正则表达式,使其能同时识别下面所有的字符串:'bat','bit', 'but', 'hat', 'hit', 'hut'

4

5 s ="bat ,bit ,but ,hat ,hit ,hut"

6 print re.findall(r'[bh][aiu]t',s)7

8 #2.匹配由单个空格分隔的任意单词对,也就是姓和名

9

10 s = "Han meimei, Li lei, Zhan san, Li si"

11 print re.findall(r'([A-Za-z]+) ([A-Za-z]+)',s)12

13 #3. 匹配由单个逗号和单个空白符分隔的任何单词和单个字母,如姓氏的首字母

14

15 s = "yu, Guan bei, Liu fei, Zhang"

16 print re.findall(r'([a-zA-Z]+),\s([a-zA-Z])',s)17

18 #4.匹配所有的有效的Python标识符集合

19

20 s = "_hello , python_1 , 2world , Pra_ni , @dfa_ , ewq*"

21 print re.findall(r'\b[a-zA-z_][\w]*(?!=\W)',s)22

23 #5. 根据美国街道地址格式,匹配街道地址。美国接到地址使用如下格式:1180 Bordeaux Drive。使你的正则表达式足够灵活,以支持多单词的街道名称,如3120 De la Cruz Boulevard

24

25 s = """street 1: 1180 Bordeaux Drive,"26 street 1: 3120 De la Cruz Boulevard"""

27 print re.search(r'\d+( +[a-zA-Z]+)+',s).group()28

29 #6. 匹配以“www”起始且以“.com”结尾的简单Web域名:例如,http://www.yahoo.com ,也支持其他域名,如.edu .net等

30

31 s = "http://www.yahoo.com www.foothill.edu"

32 print re.search(r'w{3}\.[a-zA-Z]+\.(com|edu|net)',s).group()33

34 #7. 匹配所有能够表示Python整数的字符串集

35

36 s = '520a1 20L 0 156 -8 -10a A58'

37 ite = re.finditer(r'-?\d+',s)38 for i in ite: printi.group(),39

40 #8. 匹配所有能够表示Python长整数的字符串集

41

42 s = '520a 20L 0 156 -8L A58'

43 ite = re.finditer(r'-?\d+L',s)44 for i in ite: printi.group(),45

46 #9. 匹配所有能够表示Python浮点数的字符串集

47

48 s = '80.2 fds2.1 0.003'

49 print re.findall(r'\d+\.\d+',s)50

51 #10. 表示所有能够表示Python复数的字符串集

52

53 s = '12j fds -4j 5-2j fdsa'

54 print re.findall(r'\d*-?\d+j',s)55

56 #11、匹配一行文字中的所有开头的字母内容

57

58 s="Now, let's take a closer look at some iconic moments from the show's stage made by Chinese Angels."

59 print re.findall(r'\b\w',s)60

61 #12、匹配一行文字中的所有开头的数字内容

62

63 s="Now, let's take a closer look at some iconic moments from the show's stage made by Chinese Angels."

64 print re.findall(r'\b\d',s)65

66 #13、匹配一行文字中的所有开头的数字内容或字母内容

67

68 s = "577fsda3f you12daf f1s32dafffff"

69 print re.findall(r'\b\d+|\b[A-Za-z]+',s)70

71 #14、 只匹配包含字母和数字的行

72

73 s = "nihao fsadf \n789! 3asfd 1\nfds12df e4 4564"

74 print re.findall(r'^([a-zA-Z\d ]+)$',s,re.M)75

76 #15、提取每行中完整的年月日和时间字段

77

78 s="""time 1988-01-01 17:20:10 fsadf 2018-02-02 02:29:01"""

79 print re.findall(r'[12]\d{3}\-[01]\d\-[0123]\d\s*[012]\d\:[012345]\d\:[012345]\d',s)80

81 #16、将每行中的电子邮件地址替换为你自己的电子邮件地址

82

83 s="""xss@qq.com, 465465@163.com, ppp@sina.com84 s121f@139.com, soifsdfj@134.com85 pfsadir423@123.com"""

86 print re.sub(r'\w+?\@\w+?\.com','zeke@qq.com',s)87

88 #17、匹配\home关键字:

89

90 s ="fdsar \home \homeer"

91 print re.findall(r'\\home',s)

python如何识别特殊字符_python正则表达式--特殊字符相关推荐

  1. python正则匹配特殊字符_python 正则表达式特殊字符

    字符描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个 向后引用.或一个八进制转义符.例如,'n' 匹配字符 "n".'\n' 匹配一个换行符.序列 '\\' 匹配 ...

  2. python验证码识别模块_Python图像处理之验证码识别

    在上一篇博客Python图像处理之图片文字识别(OCR)中我们介绍了在Python中如何利用Tesseract软件来识别图片中的英文与中文,本文将具体介绍如何在Python中利用Tesseract软件 ...

  3. python如何识别中文_python如何识别图片中的文字

    python如何识别图片中的文字,这里给个案例并附上详细步骤: 模块包的安装: 1.安装PIL:pip install Pillow 2.安装pytesser3:pip install pytesse ...

  4. python 正则式替换_python 正则表达式参数替换实例详解

    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python ...

  5. python模块名限定_python 正则表达式 匹配 ?的使用 限定符 sys.re模块

    特殊字符:注意\b是匹配单词而非字符串的开始和结束: \w不能匹配汉字 限定符放在匹配符的后边 2 括号分组: (\d\d\d){2} #有括号匹配6位数字 \d\d\d{2} #没有括号匹配4位数字 ...

  6. python re正则查找_python正则表达式 - re

    1,匹配符号 基本元字符 . : 任意字符,除了\n,flags设置为DOTALL(S)可以让.匹配\n |:逻辑或 \:转义 ():捕获组 空白字符 [\b] : 回退 \f : 换页 \n : 换 ...

  7. python验证码识别库_Python验证码识别

    注意:若使用云服务器 (Windows Server版) 遇到闪退,请按照步骤:我的电脑--属性--管理--添加角色和功能--勾选桌面体验,点击安装,安装之后重启即可. 2020/06/01编外: 想 ...

  8. java 特殊字符_Java正则表达式特殊字符及其处理以及正则表达式详解

    在表达式中有特殊意义,需要添加 "\" 才能匹配该字符本身的字符汇总,特别注意:"\"字符本身在正则表示里需要用"\\\\"表示字符说明 ^ ...

  9. python正则匹配数字_Python正则表达式,用于字母数字

    我正在学习正则表达式,并尝试执行以下操作: 以下是一系列字母数字的格式.它以4位数字开头,后跟2个空格,然后是8位数字,然后是一个空格,然后是8位数字,然后是一个空格,然后是8位数字,然后是一个空格, ...

最新文章

  1. 2017.1.9版给信息源新增:max_len、max_db字段
  2. python游戏程序-python游戏程序
  3. 使用struts 2 获取服务器数据 ongl表达式 标签
  4. MATLAB GUI编程中几个有用的程序段
  5. 浅析C#发送短信的原理
  6. random and password 在Linux下生成crypt加密密码的方法,shell 生成指定范围随机数与随机字符串...
  7. Linux 服务器程序规范、服务器日志、用户、进程间的关系
  8. spring data jpa和mybatis的不同
  9. nginx负载均衡器处理session共享的几种方法(转)
  10. 表单设计器 k-form-design
  11. linux 端口映射 命令,linux查看端口映射命令
  12. form表单回车会自动提交
  13. Qt下使用QAxObject进行Word转换为PDF出现错误 error: undefined reference to `QAxObject::QAxObject(QObject*)‘
  14. Alibaba Arthas快速入门 简单易懂
  15. htcm7刷linux,htc one m7刷官方zip包的教程
  16. 按例学construct2_滚动背景制作 (一)
  17. 人生必看的一百部电影
  18. 拒绝访问html,为什么IE常常出现拒绝访问 ie拒绝访问的原因及解决方法
  19. 本周白银价格走势仍关注美经济数据
  20. flutter - 使用 SingleChildScrollView() 解决键盘遮挡输入框的问题

热门文章

  1. 为什么DC不会将对应的DFF换成scan DFF 的原因
  2. 灯泡,PC 与 云
  3. Linux kernal API
  4. Python正规兼职渠道有哪些?副业月入8000+
  5. C++11~C++20 备忘录
  6. C语言程序问答基础题5
  7. 确保精确度的五轴机床、类型与行业发展的新曙光
  8. C# 调用Labview的dll
  9. 闪讯利用openwrt路由器拨号教程(四)
  10. 【十三】景区人流量统计:python日志生成+logstash+kafka+storm+mysql+springBoot+高德地图