import re
import unicodedata s = "a00xoghasalexjkdfldhfjk"
v = s.find("alex")
print(v) k = ""
# 正则模糊匹配 # print(re.findall("alex", s))
# # .是通配符(除了换行之外)
# print(re.findall("a..x", s))
# # ^ (开头)和 $(结尾)
# print(re.findall("^a..x", s))
# print(re.findall("h..k$", s))
# # * (0-max) ;+(1,max) ; ? (0,1) 贪婪匹配
# b = "ccsrwrfdddddddddddkokosadkfod"
# print(re.findall("d*", b))
# print(re.findall("d+", b))
# print(re.findall("alex*", "asdhfale")) # 0-无穷大个
# print(re.findall("alex+", "asdhfale")) # 1-无穷大
# print(re.findall("alex?", "asdhfalex")) # 0-1个
# print(re.findall("alex?", "asdhfale")) # 0-1个
#
# # {}0-无穷大个 == * ; {1,} == + ; {6} 6次
# # {} 可以带贪婪匹配
# print(re.findall("alex{1,4}", "asdhfalexxx")) # 1-4个
# print(re.findall("alex{6}", "asdhfalexxx")) # 必须是6个
# # ? 惰性匹配
# print(re.findall("alex*?", "asdhfalexxx"))
# print(re.findall("alex+?", "asdhfalexxx"))
#
# # []字符集 中没有特殊符号(除了\-^)
# print(re.findall("www[oldboy baidu]", "wwwbaidu"))
# print(re.findall("x[ys]", "xyyszz"))
# print(re.findall("s[zby]a", "xyyszasya"))
# print(re.findall("s[zb,]a", "xyyszas,a"))
#
# print(re.findall("s[zb,]a", "xyyszas,a"))
# print(re.findall("s[zb*]a", "xyyscas,a"))
#
# # -之间
# print(re.findall("s[a-z]*", "sqaaaaerqwr"))
# print(re.findall("s[a-z]*", "sqaaaaerqwr9")) # [a-z] 之间
#
# print(re.findall("s[0-9]*", "s9qaaaaerqwr9")) # [a-z] 之间
# # ^非
# print(re.findall("s[^a-z]", "sqaaaaerqwr9")) # [a-z] 之间
# # \转义
# print(re.findall("\([^()]*\)", "12*(34*6+2-5*(2-1))"))
# print(re.findall("\([^()]+\)", "12*(34*6+2-5*(2-1))"))
#
# # \d 【0-9】的数值
# print(re.findall("\d+", "12*(34*6+2-5*(2-1))")) # [0-9]
# print(re.findall("\D+", "12*(34*6+2-5*(2-1))")) # [^0-9]
# print(re.findall("\s+", "hello world"), "ssss") # \t\n\r\f\v 任何空白符
# print(re.findall("\S+", "hello world")) # [^\t\n\r\f\v]
# print(re.findall("\w+", "hello world")) # [0-9a-zA-Z_]
# print(re.findall("\W", "hello world")) # [^0-9a-zA-Z_]
# print(re.findall("\b", "hello world")) # 空格,&,#
#
# print(re.findall(r"I\b", "hello I am world")) #
# print(re.findall("I\\b", "hello I am world")) #
# # print(re.findall("c\\\f", r"abcde\fgh"))
# # | 或
# print(re.findall("gh|f", "abcde|fgh"))
# # () 分组
# print(re.findall("(abf)*", r"abfabfabfh"))
#
# print(re.findall("(?P<name>\w+)", r"abfabfabfh"))
#
# # search 找到第一个就返回一个对象(需要用group取出),,findall找到所有满足的结果放入列表
#
# print(re.search("\d+","23414afdfasf324fa"))
# print(re.search("\d+","23414afdfasf324fa").group())
# # 分组命名
# print(re.search("(?P<name>[a-z]+)(?P<age>\d+)","23414alex324fa").group("name","age"))
#
# # match 成功返回对象,失败啥也不返回
# print(re.match("\d+", "24dsd143f"))
#
# # split 分割
# print(re.split(" ", "hello abc asf"))
# print(re.split("[ |]", "hello abc|asf"))
# print(re.split("[ab]", "hebllo abc|asf"))
# # ["he","llo abc|asf"]->["he",“llo ","bc|asf"]->
# # ["he","llo "," ","c|asf"]->["he","llo "," ","c|","sf"],
# print(re.split("[ab]", "abc"))
# # 替换
# print(re.sub("\d+","A","dsfaf123aasf42112dfa"))
#
# print(re.subn("\d+","A","dsfaf123aasf42112dfa"))
#
# # 规则,书写规则
# com = re.compile("\d+")
# str1 = "qfaqs234rer1344"
# print(com.findall(str1))
#
# com = re.compile("\d")
# print(com.findall(str1))
# # 迭代器
# ite = com.finditer(str1)
# # next(ite)
# print(ite)
# # ?: 去除优先级
# print(re.findall("www\.(baidu|163)\.com","www.163.com")) # 163
# print(re.findall("www\.(?:baidu|163)\.com","www.163.com")) # www.163.com
# print(re.search("abc|bcd", "abc"))  # search
# print(re.search("a(bc)|bcd", "abc").group())
# "\(9[^()]+\)" print(re.findall("(abc)+", "abcabcabc")) # 给整体添加匹配
print(re.findall("abc+", "abcccabcabcfadfabc")) # ?:去除优先级,给c添加重复匹配
 

6.re正则表达式的更多相关文章

  1. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  2. Python高手之路【五】python基础之正则表达式

    下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...

  3. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  4. C#基础篇 - 正则表达式入门

    1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...

  5. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  6. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  7. 【JS基础】正则表达式

    正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...

  8. JavaScript 正则表达式语法

    定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...

  9. [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)

    数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...

  10. JS中给正则表达式加变量

    前不久同事询问我js里面怎么给正则中添加变量的问题,遂写篇博客记录下.   一.字面量 其实当我们定义一个字符串,一个数组,一个对象等等的时候,我们习惯用字面量来定义,例如: var s = &quo ...

随机推荐

  1. flask config笔记

    #从flask这个包中导入Flask这个类 #Flask这个类是项目的核心,以后很多操作都是基于这个类的对象 #注册url.注册蓝图等都是基于这个类的对象 from flask import Flas ...

  2. Flask的 sqlalchemy 操作要点

    1.filter和filter_by的区别 filter,使用复杂的过滤条件,一般用两个等号进行匹配 filter,使用简单的过滤条件,一般用一个等号进行匹配 Answer.query.filter( ...

  3. poj2407(欧拉函数模板题)

    题目链接:https://vjudge.net/problem/POJ-2407 题意:给出n,求0..n-1中与n互质的数的个数. 思路:欧拉函数板子题,先根据唯一分解定理求出n的所有质因数p1,p ...

  4. 小记---------maxwell 一个可以实时读取mysql二进制日志binlog,并生成JSON格式的消息,作为生产者发送给kafka,Redis,文件或其他平台的应用程序

    maxwell主要提供了下列功能     支持 SELECT * FROM table 的方式进行全量数据初始化     支持在主库发生failover后,自动回复binlog位置(GTID)     ...

  5. 洛谷 P1472 奶牛家谱 Cow Pedigrees 题解

    题面 这道题我觉得是个不错的题: 根据题意可以较清晰的发现ans只和n和k有关:(因为输入的只有这两个数啊~): 那么设f[i][j]表示前i层用了j个节点的方案数,g[i][j]表示深度小于等于i并 ...

  6. C++中的自定义内存管理

    1,问题: 1,new 关键字创建出来的对象位于什么地方? 1,位于堆空间: 2,有没有可能位于其它地方? 1,有: 2,通过一些方式可以使动态创建的对象位于静态存储区: 3,这个存储区在程序结束后释 ...

  7. Android API文档

    官方API文档: Android官网: https://developer.android.google.cn/index.html (不需要梯子) Android官网: https://develo ...

  8. python之入门

    第一章 入门 1.1 变量-输出 a = 1 # 声明变量 a # 变量的名字 = # 赋值 1 # 值 变量定义的规则: 1.变量由数字,字母,下划线组成 2.不能以数字开头 3.不能使用pytho ...

  9. layer.prompt绑定确认键

    case 'eventkc': top.layer.prompt({ formType: , title: '修改<span style="color:red">' + ...

  10. java 正则表达式 复习

    正则表达式在日常开发中会经常的接触到,学会了正则可以更有效的对字符进行验证.拆分.替换.判断字符串是否合法等操作... 常用语法: 字符的取值范围 1.[abc] : 表示可能是a,可能是b,也可能是 ...