美文网首页
正则表达式

正则表达式

作者: 空巷丨 | 来源:发表于2019-04-30 13:18 被阅读0次

正则表达式

字符匹配

符号 意义 使用 结果
"." 匹配除换行符以外的任何字符 re.findall('.','abcbcd') ['a', 'b', 'c', 'b', 'c', 'd']
"^" 匹配字符串的开头 re.findall('^a','abcbcd') ['a']
"$" 匹配字符串末尾或字符串末尾换行符之前 re.findall('d$','abcbcd') ['d']
"*" 匹配前一个re的0个或多个(贪婪的)重复。贪婪意味着它将尽可能多的重复匹配 re.findall('b*','abcbcd') ['', 'b', '', 'b', '', '', '']
"+" 匹配前面的1次或多次(贪婪的)重复 re.findall('bc+','abcbcd') ['bc', 'bc']
"?" 匹配前面re的0或1(贪婪) re.findall('bc?','abcbcd') ['bc', 'bc']
*?,+?,?? 前三个特殊字符的非贪婪版本 re.findall('b*?','abcbcd') re.findall('bc+?','abcbcd') re.findall('bc??','abcbcd') ['', '', 'b', '', '', 'b', '', '', ''] ['bc', 'bc'] ['b', 'b']
{m,n} 从m到n的匹配重复前面的re re.findall('bc{0,1}','abcbcd') ['bc', 'bc']
{m,n}? 上面的非贪婪版本 re.findall('bc{0,1}?','abcbcd') ['b', 'b']
"\" 要么转义特殊字符,要么发出特殊序列的信号
[] 表示一组字符,作为第一个字符的“^”表示补集 re.findall('[bc]','abcbcd') re.findall('[^bc]','abcbcd') ['b', 'c', 'b', 'c'] ['a', 'd']
"|" A B,创建一个与A或B匹配的RE re.findall('b c','abcbcd') ['b', 'c', 'b', 'c']
(...) 匹配括号内的re。可以在以后的字符串中检索或匹配内容 re.findall('(bc)','abcbcd') ['bc', 'bc']
(?aiLmsux) 设置RE的A、I、L、M、S、U或X标志(见下文)
(?:...) 常规括号的非分组版本 re.findall('(?:bc)','abcbcd') ['bc', 'bc']
(?P<name>...) 组匹配的子字符串可以通过名称访问 re.findall('(?P<bc>...)','abcbcd') ['abc', 'bcd']
(?P=name) 与前面名为name的组匹配的文本匹配
(?#...) 注释;忽略 re.findall('..(?#bc)','abcbcd') ['ab', 'cb', 'cd']
(?=...) 匹配如果…匹配下一个,但不使用字符串 re.findall('.(?=.)','abcbcd') ['a', 'b', 'c', 'b', 'c']
(?!...) 匹配如果…不匹配下一个 res = re.findall('.(?!.)','abcbcd') ['d']
(?<=...) 如果前面有…(必须为固定长度) re.findall('.(?<=bc)','abcbcd') ['c', 'c']
(?<!...) 如果前面没有匹配…(必须为固定长度) re.findall('.(?<!bc)','abcbcd') ['a', 'b', 'b', 'd']
(?(id/name)yes|no) 匹配是模式如果ID/名称匹配的组,则为(可选)否模式,否则为
\number 匹配同一号码组的内容
\A 仅在字符串开头匹配 re.findall('\A123','123123') ['123']
\Z 仅在字符串末尾匹配 re.findall('23\Z','123123') ['23']
\b 匹配空字符串,但仅在单词的开头或结尾
\B 匹配空字符串,但不在单词的开头或结尾
\d 匹配任何十进制数字;相当于带有ASCII标志的集合[0-9]内字节模式或字符串模式 re.findall('\d','123456') ['1', '2', '3', '4', '5', '6']
\D 匹配任何非数字字符;相当于[^\d] re.findall('\D','a123b') ['a', 'b']
\s atches任何空白字符;相当于字节模式中的[\t\n\r\f\v]或带ASCII标志的字符串模式。在不带ASCII标志的字符串模式中,它将匹配整个Unicode空白字符范围。
\S 匹配任何非空白字符;相当于[^\s]
\w 匹配任何字母数字字符;相当于字节模式中的[A-ZA-Z0-9 UUU]或带ASCII标志的字符串模式。在不带ASCII标志的字符串模式中,它将匹配Unicode字母数字字符(字母加数字加下划线)的范围。在区域设置中,它将匹配集[0-9 UUU]加上定义的字符。作为当前区域设置的字母。
\W 匹配\w的补码
\|匹配文字反斜杠

方法使用

方法 使用场景
match 将正则表达式模式与字符串开头匹配
fullmatch 完全匹配将正则表达式模式与所有字符串匹配
search 在字符串中搜索是否存在模式
sub 在字符串中替换出现的模式
subn 与Sub相同,但也返回所做替换的数目
split 按出现的模式拆分字符串
findall 在字符串中查找模式的所有匹配项
finditer 返回为每个匹配生成匹配对象的迭代器
compile 将模式编译为模式对象
purge 清除正则表达式缓存
escape 反斜杠字符串中所有非字母数字

总结

==没有测试的我自己也没弄太清楚,正则表达式效率很高,比bs4等效率要高很多,所以学习爬虫需要学号正则表达式,欢迎各位评论,共同进步==

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

      本文链接:https://www.haomeiwen.com/subject/etamnqtx.html