regrex pattern
re.compile(pattern, flags=0) |构造方法,将正则表达式的字符串编译为一个 正则表达式对象 (正则对象)
应用
1.^
和$
^hello
hello world
中的hello
复合规则,但是word\nhello
中的hello
则不符合规则
开启re.multiline
模式后,world\nhello
中的hello
也符合规则。
分组
引用’quote’ | 引用的方法 |
---|---|
在正则表达式中 |
(?P=quote) \1
|
在匹配的结果中 |
m.group('quote') m.end('queto')
|
在re.sub中的repl里 |
\g<quote> \g<1> \1
|
api
1.元字符
符号 | 描述 |
---|---|
.
|
1.默认模式匹配除换行符外所有字符;2.flag=DOTALL时则匹配所有字符包含换行符 |
\w
|
匹配字符 |
\s
|
空白字符,[ \t\n\r\f\v]
|
\d
|
十进制数,相当于[0-9]
|
\D
|
和\d 相反,非十进制数[^0-9]
|
\S
|
非空白字符 |
\W
|
匹配非字符 |
2.限定符
符号 | 描述 |
---|---|
*
|
匹配前面字符或RE的0次或多次 |
+
|
匹配前面字符或RE的1次或多次 |
?
|
匹配前面字符或RE的0次或1次 |
{m}
|
匹配前面字符m次 |
{m,n}
|
匹配前面字符m到n次 |
{m,n}?
|
非贪婪匹配 |
3.限位符
符号 | 描述 |
---|---|
^
|
1.匹配字符串开始位置;2.在MULTILINE模式下每个换行符后立即匹配 |
$
|
1.匹配字符串结束位置;2.在MULTILINE模式下每个换行符后立即匹配 |
\b
|
匹配空字符串r’\bfoo\b’匹配’foo’, ‘foo.’, ‘(foo)’, ‘bar foo baz’ but not ‘foobar’ or ‘foo3’. |
\B
|
和\b 相反,r’py\B’ matches ‘python’, ‘py3’, ‘py2’, but not ‘py’, ‘py.’, or ‘py!’.
|
\Z
|
只匹配字符串的末尾。只能放在正则表达式末尾 |
\A | 只匹配字符串的开头。只能放在正则表达式开头 |
4.贪婪与懒惰
符号 | 描述 |
---|---|
*?, +?, ??
|
消除贪婪模式,’ b ‘,<.*>非贪婪模式下为’’ |
5.分组
符号 | 描述 |
---|---|
(...)
|
在匹配完成后可以检索组的内容,并且可以在后面的字符串中使用\number特殊序列进行匹配 |
\number
|
匹配相同编号的组的内容。 例如(.+) \1 这个式子等价于(.+) (.+)
|
(?P<name>...)
|
与常规圆括号类似,但可以通过符号组名称来访问与该组匹配的子字符串。 |
(?P=name)
|
对指定组的引用 |
6.零宽断言
符号 | 描述 |
---|---|
(?=...)
|
如果…末尾有…才匹配,例如, Isaac(?=Asimov) 只有跟随着’Asimov’才会匹配’Isaac’。 |
(?!...)
|
如果…末尾没有…才匹配,例如,Isaac(?!Asimov)只有在没有跟随’Asimov’时才会匹配’Isaac’。 |
(?<=...)
|
如果开头有…才匹配, |
(?<!...)
|
如果开头没有…才匹配 |
(?(id/name)yes-pattern |no-pattern)
|
7.取其一
符号 | 描述 |
---|---|
[]
|
1.匹配包含的任意一个;2.匹配范围,比如[a-z] 匹配a到z的任意一个,[0-5][0-9] 匹配00 到59 ,[0-9A-Fa-f] 匹配十六进制,- 转义或在开始或结束匹配一个字母
|
[^x]
|
匹配除了x以外的任意字符 |
[^aeiou]
|
匹配除了aeiou这几个字母以外的任意字符 |
A|B
|
逻辑或,匹配到A或B既停止 |
8.转义
符号 | 描述 |
---|---|
\
|
转义,在字符串前添加r 会取消转义
|
9.注释
(?#...)
参考:
https://www.jianshu.com/p/147fab022566
regrex pattern相关推荐
- java中的pattern_Java Pattern的用法是什么?
展开全部 java 中pattern为正则表达式的编译表示形式.指定为字符串的正则表达式必须首先被编译为此类的实例.然后,62616964757a686964616fe58685e5aeb931333 ...
- LeetCode刷题记录11——290. Word Pattern(easy)
LeetCode刷题记录11--290. Word Pattern(easy) 目录 LeetCode刷题记录11--290. Word Pattern(easy) 题目 语言 思路 源码 后记 题目 ...
- Observer Pattern 观察者模式
Observer Pattern (观察者模式) 定义: <设计模式>中对Observer模式的意图是这样描述的:"定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, ...
- Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) B. Verse Pattern 水题
B. Verse Pattern 题目连接: http://codeforces.com/contest/722/problem/B Description You are given a text ...
- 翻译:java.util.regex.Pattern
java.util.regex.Pattern A compiled representation of a regular expression. A regular expression(正则表达 ...
- IronPython系列:Composite Pattern及其实现
最近挺经常做鱼的.对于做鱼的步骤算是熟悉.以烤制为例,主要有三步:洗(Clean).切(Cut)和烤(Bake).烤鱼(Bake)又有两个小步:加热(Heat)和烤(Bake).软件开发也是这样,整个 ...
- 装饰模式(Decorator Pattern)
装饰模式(Decorator Pattern) 一句话 继承一个抽象类, ...
- (转载)深入浅出设计模式——桥接模式(Bridge Pattern)
模式动机设想如果要绘制矩形.圆形.椭圆.正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色.绿色.蓝色等,此时至少有如下两种设计方案: 第一种设计方案是为每一种形状都提供一套 ...
- Python 出现 can't use a string pattern on a bytes-like object
# coding=utf-8 import urllib.request import re url = 'http://www.163.com' file = 'd:/test.html' data ...
最新文章
- c语言中程序偏离,C语言中的指针加减偏移量
- Property list types and their various representations
- 首记,一种新的企业信息化平台开发方案——AgileEAS.NET框架
- win32程序启用控制台-- 调试输出
- TextView显示颜色高亮的问题
- 某公司故障分析案例(实战案例)
- 微服务统计,分析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用...
- VS2015无法打开包括文件corecrt.h 无法打开文件ucrtd.lib
- 将远程计算机上的文件夹,如何将现有网站上虚拟目录创建到驻留在远程计算机上的文件夹...
- LeetCode(908)——最小差值 I(JavaScript)
- 实习踩坑之路:Mybatis写的sql语句有<符号的问题导致项目启动失败以及count(*)怎么对应到某个实体类的字段
- odbc监控oracle,在zabbix下面使用ODBC 监控oracle数据库(11.2.0.3)和mysql数据库
- mysql 分库外置索引,MySQL的分库分表与Innodb的Btree索引
- dqo变换_一种基于dqo变换改进的电流检测新方法
- php处理头像,(头像处理)PHP把图片转换成圆形png
- java新闻网站项目描述_基于jsp的新闻网站-JavaEE实现新闻网站 - java项目源码
- Kali-linux-2020 sqli-labs环境配置(含网上最全Less-29在Kali上的配置)
- Live800:中小企业如何选择在线客服系统?
- Arduino超声波传感器使用
- Linux基础命令之tar解压缩详解
热门文章
- c语言结果输出10遍,C语言 如何实现输出这样一系列输出结果
- 向mysql中添加更新时间_mysql 实现添加时间自动添加更新时间自动更新操作
- Python+pandas使用交叉表分析超市营业额数据
- full gc 次数_32. GC 是怎样工作的?
- e3 1231 v3 达芬奇_Premiere和达芬奇调色,都是最新版
- LeetCode-35 搜索插入位置
- ICT学习笔记(2)网络各层次的相关内容
- php数据库显示+ajax,如何使用PHP和AJAX显示MySQL数据库
- linux 进程状态 load,Linux - 系统指标 CPU load
- mt4软件较稳定的交易商服务器地址,外汇MetaTrader 4 常见交易商服务器ip地址汇总...