打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
只需十分钟,浅识正则表达式

根据百度百科的解释,正则表达式的概念是:对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

emmmm,看完这一大堆文字,表示好晕哦,还是不能理解啊!

但是,正则表达式对数据处理来说非常重要!数据的清洗或网页爬虫中解析数据都用得上它。

因为它有以下优点:

(1)可以简化代码,实现起来更加简便;

(2)处理字符串的时候更容易理解;

(3)其速度比自己写逻辑代码要快。

(⊙o⊙)…有什么通俗易懂的解释可以让新手快速掌握这个名词的精髓呢???

简单来说,正则表达式就是设定一个字符串规则,然后帮助我们判断某个字符串是不是符合这个模式,也可以根据该规则提取我们需要的数据。

这么解释,是不是容易理解多了,但是没有事例结合还是一知半解,下面让我们利用正则表达式做一个简单的演示:

正则表达式语法

^     匹配字符串开头

$     匹配字符串末尾

例如,'^abc':匹配以'abc'开头的字符串;'abc$':匹配以'abc'结尾的字符串;

re*    匹配0个或多个的字符

re   匹配1个或多个的字符

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

例如,'ab*':匹配字符串a和0个或多个b组成的字符串('a'、'ab'、'abb'......)

            'ab ':匹配字符串a和1个或多个b组成的字符串('ab'、'abb'......)

            'ab?':匹配字符串a和0个或1个b组成的字符串

匹配任意字符串,除了换行符

[abc]  匹配单个的字符a或b或c

[^abc]  匹配除了a,b,c之外的字符

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

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

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

\S 匹配任意非空字符

\d  匹配任意数字

\D  匹配任意非数字

。。。

这么多语法,这也太晕了吧,不要着急,根据下面这个图片,在使用时慢慢查阅,以后熟练了就好啦。

正则表达式实例

看了这么多的语法,头晕脑胀,到底怎么才能构建一个模式来匹配字符串呢?比如,现在要求我们从一大堆字符串中提取出需要的数据:邮箱地址。这该怎么办??

很显然,邮箱地址一般是这样的:

xiaobai@qq.com

根据前面提到的语法,我们可以定义这样一个规则:

^\w @\w \.[com,cn,net]{1,3}$

其中\w表示单词字符,等价于[A-Za-z0-9_],匹配字母数字及下划线

表示匹配1个或多个的字符

\w 代表匹配字符[A-Za-z0-9_]一次或多次的组合字符串

\.的含义是将'.'转义,因为'.'本身也是语法

{1,3}表示匹配前一个字符1-3次,至少1次,至多3次

[com,cn,net]字符集,表示匹配其中任意一个字符

下面用Python代码简单看一下演示,首先导入正则表达式的库re模块,再定义字符串规则pattern,如果匹配成功,则输出YES,反之则没有输出。

具体的Python正则表达式大法,还听下回分解!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python3正则表达式(一)基本语法规则
js正则表达式基本语法(精粹)
js正则表达式基本语法
Java程序员:一刻钟精通正则表达式
*正则表达式详解(一)正则表达式初步
(88) 正则表达式 (上) / 计算机程序的思维逻辑
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服