专栏首页公众号:googpy介绍两个自动生成正则表达式的网址

介绍两个自动生成正则表达式的网址

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串,将匹配的子串替换,或者从某个串中取出符合某个条件的子串等。

对于爬虫来说,有了它,从HTML里提取想要的信息就非常方便了。

爬虫程序能否成功运行,关键在于正则表达式的编写,但对于小白来说,正则表达式的知识很多,第一次接触肯定抓不住学习的重点,更谈不上应用了。

所以,在深入学习正则表达式之前,我们可以借助工具来测试我们的正则表达式是否与设想那样正确地匹配,今天就推荐我常用的两个网址。

1.一个正则表达式测试工具「http://tool.oschina.net/regex/」,这是开源中国提供的一个在线测试网址,输入待匹配的文本,然后选择常用的正则表达式,就可以得到相应的匹配结果了。

例如,这里输入待匹配的文本如下:

Hello,my phone numberis 010-86432100 and email is runningwbq@163.com.

这样字符串中包含了一个电话号码和一个电子邮件,接下来就尝试用正则表达式提取出来,如图所示

在网页右侧选择“Email地址”,就可以看到下方出现了文本中的Email。是不是很神奇?

2.当然,除了上面这个在线测试工具,还有一个「http://pythex.org/」,如图所示。

Pythex的使用非常简单,只要在「Yourregular expression」中输入我们设计的正则表达式,在「Your test string」中输入进行测试的匹配内容,它就会自动将匹配到的内容以高亮方式显示。

是不是这两个在线测试的工具对小白学习正则表达式来说很有用呀!

3.下面我把经常用到的匹配规则总结了一下

模式

描述

\w

匹配字母、数字及下划线

\W

匹配不是字母、数字及下划线的字符

\s

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

\S

匹配任意非空字符

\d

匹配任意数字,等价于[0-9]

\D

匹配任意非数字的字符

\A

匹配字符串开头

\Z

匹配字符串结尾,如果存在换行,只匹配到换行前的结束字符串

\z

匹配字符串结尾,如果存在换行,同时还会匹配换行符

\n

匹配一个换行符

\t

匹配一个制表符

^

匹配一行字符串的开头

$

匹配一行字符串的结尾

.

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

[…]

用来表示一组字符,单独列出,比如[amk]匹配a、m、k

[^…]

不在[]中的字符,比如[^abc]匹配除了a、b、c之外的字符

*

匹配0个或多个表达式

+

匹配1个或多个表达式

匹配0个或1个前面的正则表达式定义的片段,非贪婪方式

{n}

精确匹配n个前面的表达式

{n,m}

匹配n到m次由前面正则表达式定义的片段,非贪婪方式

a|b

匹配a或b

()

匹配括号内的表达式,也可以表示一个组

大家看完之后,是不是有点晕晕的,如果全记住也不可能,正则表达式这部分知识经常用,不知道那个字符什么意思,就来查表,多查几次,自然而然就会记住的,所以,后面我会分享一些正则表达式的实例,方便大家更好理解。

最后,正则表达式不是Python独有的,它也可以用在其他编程语言中,但是Python的re库提供了整个正则表达式的实现,利用这个库,可以在Python中使用正则表达式。

本文分享自微信公众号 - googpy(googpy),作者:stormwen

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-05

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 正则表达式(一)

    练习写作是我们学习知识有效的一种方式,通过写作可以检验你对知识点的掌握,是一种对自己内心世界的推演,因此你也会得到一些结论。而这些结论正是你身体力行、复盘总结、...

    stormwen
  • 5分钟安装好MySQL数据库(建议收藏)

    MySQL是一个轻量级的关系型数据库,在企业和公司中被广泛使用,但MySQL安装起来却比较繁琐,稍有不注意就导致安装不成功,我曾亲身实践安装MySQL,用时居然...

    stormwen
  • 爬虫基础知识点

    学习爬虫之前需要了解的基础知识,如HTTP、爬虫、代理的基本原理等内容,对爬虫没有任何了解的小伙伴建议好好看看我分享的内容。

    stormwen
  • 正则表达式与优化

    用 NFA 自动机实现的比较复杂的正则表达式,在匹配过程中经常会引起回溯问题。大量的回溯会长时间地占用 CPU,从而带来系统性能开销。

    汐楓
  • 网络安全自学篇-PHP代码审计(二)

    一、最左原则(非贪婪模式):正则表达式总是从目标字符串的最左侧开始,依次匹配,直到匹配到符合表达式要求的部分,或直到匹配目标字符串的结束 二、最长原则(贪婪模式...

    字节脉搏实验室
  • (27)正则表达式

    ①正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。

    生信real
  • 系统地学习正则表达式(一):基础篇

    正则表达式就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,用来表达对字符串的一种过滤逻辑。

    公众号---志学Python
  • 正则表达式总结

    一、元字符 . 匹配除换行符以外的任意字符 \w 匹配单词(字母、数字、下划线、汉字) \s 匹配任意空白符(空格、制表符tab、换行符、中文全角空格) \d...

    机器学习AI算法工程
  • 前端进阶必须知道的正则表达式知识

    正则表达式(Regular Expression) 是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个...

    石燕平
  • 正则表达式教程:实例速查

    正则表达式(regex 或 regexp)在文本信息提取方面是非常有用的工具,通过查询一个或多个特定搜索模式的匹配实现(例如,特定的ASCII或unicode字...

    AI研习社

扫码关注云+社区

领取腾讯云代金券