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是怎么组织.匹配高达上千条的正则规则 ...
随机推荐
- AT&T汇编指令
GAS中每个操作都是有一个字符的后缀,表明操作数的大小. C声明 GAS后缀 大小(字节) char b 1 short w 2 (unsigned) int / long / char* l 4 f ...
- GLSL传递数组
static const char *microshaderFragSource = { "varying vec4 color;\n" "uniform bool te ...
- mac 互传文件
搭建HTTP服务,然后局域网访问就行 PHP方式: php -S 172.21.205.xxx:9999 Python python -m SimpleHTTPServer 8001 在浏览器访问:h ...
- Oracle误删除数据的恢复方法(转)
来源:原创网站北京北亚数据恢复中心,转载须注明出处. 学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失.当我在工作中真正遇到这些 ...
- JBPM工作流(六)——流程变量
1.启动流程实例 ? 1 2 3 4 5 6 7 // 启动流程实例 @Test public void startProcessInstance() { // 使用指定key的最新版本的流程 ...
- chrome 调试进入 paused in debugger 状态解决办法
今天调试代码的时候总是一刷新就进入 debugger 状态,总是需要按几次 F8 才能进到页面,我那个暴脾气啊,几次后终于是忍不住了,然后再网上找到了解决办法.就如一位网友所说,“Oh God! I ...
- 调用微信定位功能 lat _ lng php方法
{:wx_jssdk_config("false")} //最主要的这一句 没有这一句在微信浏览器里是无法调用的定位功能的.下面有这个方法说明 <script> wx. ...
- LINUX常用命令 --- 权限篇
linux常用命令 linux用户权限相关 root 用户 相当于群主 超级用户 sudo命令 相当于群管理员 普通用户 群成员 查看用户id信息 使用linux ...
- https://stackoverflow.com/questions/10423781/sql-data-range-min-max-category
select phone,count(order_id) as c from table_recordgroup by phoneorder by c desc SELECT CASEWHEN (ag ...
- ssl证书
个人理解: 客户端第一次连接服务端的时候,服务端就把证书(中的公钥)给了客户端,客户端验证证书中的公钥是否和本地的公钥一致(客户端一般都会内置类似AC的具有公信力的证书颁发机构), 之后的请求每次请求 ...