正则表达式

1、入门

正则表达式是用来做字符匹配的,比如看一个字符串里面是否有另一个字符串,或者有多少匹配的方式以及位置。

最简单的,

\d 代表数字 \w代表数字或者字母 .代表任意字符(这是个点)
单独去写这些就代表一个字符
比如

abcde345
#匹配\d   结果如下:
3
4
5

控制数量,
?代表0-1个字符;
*代表0-无限个字符;
+表示至少一个字符;
{n-m}代表n-m个字符;

和上面的符号组合到一起

abcd123ed4567
#匹配\d{3}  匹配三个数字的字符
123
456
567

怎么测试?找了个网站,大家可以试一下~~
https://tool.oschina.net/regex/#

2、进阶

下面进阶~~
[]可以帮助我们精确匹配
(A|B)可匹配A或者B
^开头符号,放这个就代表前面不能有东西
$结尾符号,放这个就代表后面不能有东西

#[0-9a-zA-Z]可匹配一个数字或者字母

#######################
# 例子1 匹配任意py文件  .*代表任意个任意字符   \.代表转义,也就是这块必须有个.  py常规字符   $结尾,代表后面不能有东西了
.*\.py$

3、实战

差不多了,搞搞python

import re

我们会定义一个正则字符,然后re模块去使用
一般我们会在字符前面加个r(r可以关闭python的转义,防止和正则化的转义混淆)

3.1 匹配 re.match
test = '用户输入的字符串'
if re.match(r'正则表达式', test):
    print('ok')
else:
    print('failed')
3.2 拆分re.split
test = '用户输入的字符串'
a =  re.split(r'正则表达式', test)
## 例子 : 匹配多种符号划分的句子
re.split(r'[;,、\s]+', 'a;b   c,sd、实打实')
['a', 'b', 'c', 'sd', '\xe5\xae\x9e\xe6\x89\x93\xe5\xae\x9e']
3.3 编译正则表达式

正则表达式在使用是需要编译的,在上面的语句中,每次使用都需要编译一下,如果数据量的的话比较耗费时间。
所以如果某个正则表达式经常使用时,我们一般就需要编译一下,如下:

re1 = re.compile(r'正则表达式')
# 使用:
>>> re1.match(test)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值