博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python: re
阅读量:4221 次
发布时间:2019-05-26

本文共 1435 字,大约阅读时间需要 4 分钟。

. 可以匹配任何字符(除了换行)

[pj]ython 匹配python, jython。[a-zA-Z0-9] 只能匹配一个这样的字符。

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

python|perl  ==  p(ython|erl)  子模式

子模式后面加 ?。就是非必须。

>>> r'(http://)?(www\.)?python\.org'
(pattern)* 0次以上

(pattern)+ 1次以上

(pattern){m,n} 允许m~n次

^开头,$结尾

>>> text='"Hm...Err -- are you sure?" he sisai'>>> pat='[a-zA-Z]+'>>> import re>>> re.findall(pat, text)['Hm', 'Err', 'are', 'you', 'sure', 'he', 'sisai']
>>> pat=r'[.?\-",]+' #- 转义
>>> pat="{name}">>> text='Dear {name}...'>>> re.sub(pat, 'Mr Gumby', text)'Dear Mr Gumby...'>>>
>>> re.escape('www.python.org')'www\\.python\\.org'>>> re.escape('But where is the ambiguity')'But\\ where\\ is\\ the\\ ambiguity'
组的序号取决于左侧的括号数。0是整个模式。范围1~99

>>> m=re.match(r'www\.(.*)\..{3}', 'www.python.org')>>> m.group(1)'python'>>> m.start(1)4>>> m.end(1)10>>> m.span(1)(4, 10)>>> m.group(2)Traceback (most recent call last):  File "
", line 1, in
m.group(2)IndexError: no such group
>>> pat=r'\*([^\*]+)\*'>>> re.sub(pat, r'\1', 'Hello, *world*!')'Hello, world!'
默认贪婪,尽可能多匹配。
>>> pat=r'\*(.+)\*'>>> re.sub(pat, r'\1', 'Hello, *This* is *it*!')'Hello, This* is *it!'
匹配所有内容。更前面一种才行。
>>> pat=r'\*([^\*]+)\*'>>> re.sub(pat, r'\1', 'Hello, *This* is *it*!')'Hello, This is it!'
加上? 变成非贪婪

>>> pat=r'\*\*(.+?)\*\*'>>> re.sub(pat, r'\1', 'Hello, **This** is **it**!')'Hello, This is it!'
原始贪婪:

>>> pat=r'\*\*(.+)\*\*'>>> re.sub(pat, r'\1', 'Hello, **This** is **it**!')'Hello, This** is **it!'

转载地址:http://lqmmi.baihongyu.com/

你可能感兴趣的文章
深入Hibernate映射文件(二)——<hibernate-mapping>的属性
查看>>
详解在Spring中进行集成测试
查看>>
Hibernate 的工具类
查看>>
Struts2中过滤器和拦截器的区别
查看>>
51单片机:led灯闪烁10次后熄灭
查看>>
安卓使用okhttp上传文件,服务端PHP接收
查看>>
51单片机:设计有四位数码管,设计3个按键,k1,k2,k3;k1为模式键,第一次按下,显示初始值,k2,k3有效,k2按一次初值加1,k3按一次初值减1;k1第二次按下停止;k1第三次按下清零;
查看>>
安卓:阿里逆地理编码,可直接拿去用
查看>>
thinkphp源码没问题却各种报错,Namespace declaration statement has to be the very first statement in the script
查看>>
android:dkplayer中ijkplayer延迟长的问题,达到秒开的结果
查看>>
安卓:okhttp请求,获取返回数据
查看>>
安卓:股票筛选及分析系统
查看>>
Effective Java 学习笔记一 Object的方法
查看>>
使用 ctypes 进行 Python 和 C 的混合编程
查看>>
用scikit-learn学习DBSCAN聚类
查看>>
机器学习:Python实现聚类算法(三)之总结
查看>>
使用sklearn做单机特征工程
查看>>
Python 多线程技巧 用threading.Event代替time.sleep()
查看>>
工具】Cmake与gcc的关系
查看>>
struct中长度为0的数组用途与原理
查看>>