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正则匹配的更多相关文章

  1. 正则匹配闭合HTML标签(支持嵌套)

    任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题.关于正则引擎的原理,推荐<Mastering R ...

  2. 正则匹配抓取input 隐藏输入项和 <td>标签内的内容

    这里不多作解释了,只要提供方法,如果想了解正则匹配,就去百度. 第一条是,匹配出所有的隐藏输入域 $patern = "/<input(.*?)type=\"hidden\& ...

  3. js正则匹配的一个日常应用

    应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var ...

  4. 详解一个自己原创的正则匹配IP的表达式

    这里给大家详细讲解一下一个匹配IP地址的正则表达式, 有关正则方面的知识,会在详细的讲解中提到. 在讲解之前,我先给大家介绍一下,ip地址的生成规则. IP地址,是由32位数字二进制转为四个十进制的字 ...

  5. 正则匹配中 ^ $ 和 \b 的区别

    正则匹配中 ^ $ 和 \b 的区别     ^和$分别代表字符串的开始和结束,因此^\d$只能匹配包含一个数字的字符串\b代表单词边界,其前后必须是不同类型的字符,可以组成单词的字符为一种类型,不可 ...

  6. php 正则匹配中文(转)

    我使用正则表达式来匹配中问的时候,出现了无法匹配的问题,问题如下 PCRE does not support \L, \l, \N{name}, \U, or \u at offset 2 我原来的匹 ...

  7. php中的正则函数主要有三个-正则匹配,正则替换

    php中变量的声明? 由于php声明变量的时候, 不支持使用 var关键字, 又不能直接写一个变量名字, 孤零零的放在那里, 所以, 在php中声明变量的方式, 同时也是给变量初始化的形式, 即: & ...

  8. 关于php中正则匹配包括换行符在内的任意字符的问题总结

    要使用正则匹配任意字符的话,通常有以下几种方法,这里我分别对每一种方法在使用的过程中做一个总结: 第一种方式:[.\n]*? 示例 ? PHP preg_match_all('/<div cla ...

  9. Hive 正则匹配函数 regexp_extract

    regexp_extract 语法:    regexp_extract(string subject,  string pattern,  int index) 返回值: string 说明:  将 ...

  10. Aho-Corasick算法、多模正则匹配、Snort入门学习

    希望解决的问题 . 在一些高流量.高IO的WAF中,是如何对规则库(POST.GET)中的字符串进行多正则匹配的,是单条轮询执行,还是多模式并发执行 . Snort是怎么组织.匹配高达上千条的正则规则 ...

随机推荐

  1. AT&T汇编指令

    GAS中每个操作都是有一个字符的后缀,表明操作数的大小. C声明 GAS后缀 大小(字节) char b 1 short w 2 (unsigned) int / long / char* l 4 f ...

  2. GLSL传递数组

    static const char *microshaderFragSource = { "varying vec4 color;\n" "uniform bool te ...

  3. mac 互传文件

    搭建HTTP服务,然后局域网访问就行 PHP方式: php -S 172.21.205.xxx:9999 Python python -m SimpleHTTPServer 8001 在浏览器访问:h ...

  4. Oracle误删除数据的恢复方法(转)

    来源:原创网站北京北亚数据恢复中心,转载须注明出处. 学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失.当我在工作中真正遇到这些 ...

  5. JBPM工作流(六)——流程变量

    1.启动流程实例 ? 1 2 3 4 5 6 7 // 启动流程实例 @Test public void startProcessInstance() {     // 使用指定key的最新版本的流程 ...

  6. chrome 调试进入 paused in debugger 状态解决办法

    今天调试代码的时候总是一刷新就进入 debugger 状态,总是需要按几次 F8 才能进到页面,我那个暴脾气啊,几次后终于是忍不住了,然后再网上找到了解决办法.就如一位网友所说,“Oh God! I ...

  7. 调用微信定位功能 lat _ lng php方法

    {:wx_jssdk_config("false")} //最主要的这一句 没有这一句在微信浏览器里是无法调用的定位功能的.下面有这个方法说明 <script> wx. ...

  8. LINUX常用命令 --- 权限篇

    linux常用命令 linux用户权限相关 root 用户    相当于群主    超级用户 sudo命令   相当于群管理员 普通用户    群成员 查看用户id信息      使用linux    ...

  9. 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 ...

  10. ssl证书

    个人理解: 客户端第一次连接服务端的时候,服务端就把证书(中的公钥)给了客户端,客户端验证证书中的公钥是否和本地的公钥一致(客户端一般都会内置类似AC的具有公信力的证书颁发机构), 之后的请求每次请求 ...