re正则匹配
import re #'(?P<name>...)' 分组匹配
print(re.search("(?P<id>[0-9]+)","abc12345daf@34")) #返回一个对象
print(re.search("(?P<id>[0-9]+)", "abc12345daf@34").groupdict()) #以字典形式返回匹配的值
print(re.search("(?P<id>[0-9]+)","abc12345daf@34").group()) #返回匹配的值 print(re.search("(?P<id>[0-9]+)(?P<name>[a-zA-Z]+)","abc12345daf@34").groupdict()) #以字典形式返回匹配的值,第二个匹配的内容,从第一个匹配的内容后面找 print(re.search("(?P<id>[0-9]+)(?P<name>[a-zA-Z]+)","abc12345daf@34").group('id')) #返回'id' [0-9]+ 匹配的value a = re.search("(?P<id>[0-9]+)(?P<name>[a-zA-Z]+)","abc12345daf@34").groupdict() #(?P<XXX>) 是语法 xxx 是KEY
print(a['id'])
print(a['name']) #替换
print(re.sub("[0-9]+","|","abc12de3f45GH")) print(re.sub("[0-9]+","|","abc12de3f45GH",count=2)) #count=2 替换前两个 # '(...)' 分组匹配,
print(re.search("(abc){2}a(123|456)c", "abcabca456c").group()) #abc匹配两次,匹配一个a,匹配123或者456,匹配一个c,结果 abcabca456c # '|' 匹配|左或|右的字符
print(re.search("(123|456)","c456b123a").group()) #匹配到456;123和456同时匹配字符串,谁先匹配到输出谁; 而不是123匹配所有字符串,然后456在匹配所有字符串 #S(DOTALL): 点任意匹配模式,改变'.'的行为,flags=re.S
print(re.search(r".+","\nabc\ne ee")) #匹配到abc
print(re.search(r".+","\nabc\ne ee",flags=re.S)) #匹配到\nabc\ne ee #匹配反斜杠\
string = '3\8'
m = re.search('(\d+)\\\\', string) #\d 表示数字,+多个;\\\\ 字符串转义后是\\,然后再正则转义后是\ if m is not None:
print( m.group(1)) # 结果为:3 n = re.search(r'(\d+)\\', string) #不转义特殊字符,直接进行正则转义是\ if n is not None:
print(n)
print(n.group(1)) # 结果为:3 #匹配反斜杠解析:
(1)、python自身处理字符串时,反斜杠是用于转义字符
(2)、正则表达式也使用反斜杠来转义字符
最常用的匹配语法:
re.match 从头开始匹配
re.search 匹配包含
re.findall 把所有匹配到的字符放到以列表中的元素返回
re.splitall 以匹配到的字符当做列表分隔符
re.sub 匹配字符并替换
参考:
https://www.cnblogs.com/alex3714/articles/5161349.html
https://blog.csdn.net/jinixin/article/details/56705284
https://www.cnblogs.com/wangyongbin/p/4253805.html
re正则匹配的更多相关文章
- 正则匹配闭合HTML标签(支持嵌套)
任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题.关于正则引擎的原理,推荐<Mastering R ...
- 正则匹配抓取input 隐藏输入项和 <td>标签内的内容
这里不多作解释了,只要提供方法,如果想了解正则匹配,就去百度. 第一条是,匹配出所有的隐藏输入域 $patern = "/<input(.*?)type=\"hidden\& ...
- js正则匹配的一个日常应用
应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var ...
- 详解一个自己原创的正则匹配IP的表达式
这里给大家详细讲解一下一个匹配IP地址的正则表达式, 有关正则方面的知识,会在详细的讲解中提到. 在讲解之前,我先给大家介绍一下,ip地址的生成规则. IP地址,是由32位数字二进制转为四个十进制的字 ...
- 正则匹配中 ^ $ 和 \b 的区别
正则匹配中 ^ $ 和 \b 的区别 ^和$分别代表字符串的开始和结束,因此^\d$只能匹配包含一个数字的字符串\b代表单词边界,其前后必须是不同类型的字符,可以组成单词的字符为一种类型,不可 ...
- php 正则匹配中文(转)
我使用正则表达式来匹配中问的时候,出现了无法匹配的问题,问题如下 PCRE does not support \L, \l, \N{name}, \U, or \u at offset 2 我原来的匹 ...
- php中的正则函数主要有三个-正则匹配,正则替换
php中变量的声明? 由于php声明变量的时候, 不支持使用 var关键字, 又不能直接写一个变量名字, 孤零零的放在那里, 所以, 在php中声明变量的方式, 同时也是给变量初始化的形式, 即: & ...
- 关于php中正则匹配包括换行符在内的任意字符的问题总结
要使用正则匹配任意字符的话,通常有以下几种方法,这里我分别对每一种方法在使用的过程中做一个总结: 第一种方式:[.\n]*? 示例 ? PHP preg_match_all('/<div cla ...
- Hive 正则匹配函数 regexp_extract
regexp_extract 语法: regexp_extract(string subject, string pattern, int index) 返回值: string 说明: 将 ...
- Aho-Corasick算法、多模正则匹配、Snort入门学习
希望解决的问题 . 在一些高流量.高IO的WAF中,是如何对规则库(POST.GET)中的字符串进行多正则匹配的,是单条轮询执行,还是多模式并发执行 . Snort是怎么组织.匹配高达上千条的正则规则 ...
随机推荐
- SQL Server 中,如何獲得上個月的第一天和最後一天( 帶時間戳)
select DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0) --First day of previous month select DATEA ...
- fiddler 使用记录
fiddler 工作原理 Fiddler 启动后将自己变成一个代理服务器,这个代理服务器默认监听 127.0.0.1:8888. Filddler 启动后浏览器的代理会被自动更改为 127.0.0.1 ...
- 写文件的工具类,输出有格式的文件(txt、json/csv)
import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io. ...
- 三维计算机视觉 —— 中层次视觉 —— RCNN Family
RCNN是从图像中检测物体位置的方法,严格来讲不属于三维计算机视觉.但是这种方法却又非常非常重要,对三维物体的检测非常有启发,所以在这里做个总结. 1.RCNN - the original idea ...
- JavaSE 可变参数的方法重载
/** * 可变参数的方法重载 */ class A { public void test(int a, int b) { System.out.println(a+", "+b) ...
- TensorFlow学习入门
学习了基本的神经网络知识后,要使用框架了,这样才能出来更加复杂的情况,更快的开发出模型. 首先安装后,按照官网写了一个例子,但是又好多不懂,但只是第一步, 看这段代码,其实给你提供了很多学习tf的线索 ...
- python文档自动翻译
关键方法 提取文档内容 读取TXT文档 txt文档的读取很简单,直接用python自带的open()方法就好,代码如下所示: # 读取TXT文档 def read_txt(path): '''实现TX ...
- array_rand
array_rand — 从数组中随机取出一个或多个单元 mixed array_rand ( array $array [, int $num = 1 ] ) 从数组中取出一个或多个随机的单元,并返 ...
- Postman 接口测试
使用场景: 开发接口的时候需要快速调接口的时候 测试的时候需要非常方便的调用接口.通过不同的参数去测试接口的输出 这些接口调用是需要保存下来反复运行的 在运行过程中,如果有断言,检查点就更好了第三方 ...
- Oracle管理常用查询语句
1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom dba_tablespaces ...