Python正则表达式re模块
2024-08-30 12:42:47
re.compile(pattern,flags=0)
将正则表达式编译成正则表达式对象。可以使用match()和search()方法进行匹配。对于常用的表达式可以先进行编译,后续可多次使用以提高效率。如
r = re.compile(r'a')
rt = r.search('delav')
rt.group() #结果为'a'
re.match(pattern,strings)
匹配字符串开头,并返回一个matchobject实例,如果匹配失败,则返回None。返回的实例可使用re.group()来返回匹配到的结果。如
r = re.match(r'de', 'Delav')
r.group() #结果为de
re.search(pattern,strings)
匹配字符串任意位置(只返回字符串第一个位置的匹配项),并返回一个matchobject实例,如果匹配失败,则返回None。返回的实例可使用re.group()来返回匹配到的结果。如
r = re.search(r'la', 'Delav')
r.group() #结果为'la'
re.findall(pattern,strings)
匹配字符串任意位置,返回从左到右匹配到的匹配项的列表,可以是零个、一个或多个。如
r = re.findall(r'e', 'delaver') #结果为['e','e']
re.finditer(pattern,strings)
从左到右进行匹配,返回一个包含matchobject实例的迭代器。如
r = re.finditer(r'e', 'delaver')
for i in r:
i.group() #结果为'e', 'e'
re.split(pattern,strings,maxsplit=0)
以匹配到的匹配项来分割字符串,并返回一个分割后的字符串列表。maxsplit表示最多分隔次数。如
r = re.split(r';|,|=', 'de,lo;pe=wq') #结果为['de', 'lo', 'pe', 'wq']
r = re.split(r';|,|=', 'de,lo'pe=wq', maxsplit=2) #结果为['de', 'lo', 'pe=wq']
re.sub(pattern,repl,strings,count=0)
用repl来替换匹配到的匹配项,并返回替换后的字符串。count表示最大替换次数。如
r = re.sub(r'e', '@', 'delaver') #结果为'd@lav@r'
r = re.sub(r'e', '@', 'delaver', count=1) #结果为'd@laver'
re.sub(pattern,repl,strings,count=0)
与sub()相同作用,只是subn()返回的是替换后的字符串和替换次数组成的元组。如
r = re.subn(r'e', '@', 'delavererefe') #结果为('d@lav@r@r@f@', 5)
r = re.subn(r'e', '@', 'delavererefe', count=3) #结果为('d@lav@r@refe', 3)
re.escape(pattern)
将字符串中所有可能被解释为正则运算符的字符进行转义。如
re.escape('python.exe') #结果为'python\.exe'
re.purge()
清楚正则表达式缓存
最新文章
- update
- java.net.MalformedURLException: Illegal character in URL
- C# 线程同步
- POJ 1422 Air Raid (最小路径覆盖)
- PV操作,
- hdu4630No Pain No Game (多校3)(树状数组)
- John(博弈)
- sqlserver bak还原
- 25个Linux性能监控工具
- bzoj 2339: [HNOI2011]卡农
- 个人在AS的一些安卓适配经验
- H5学习之旅-H5的块标签的使用(9)
- Android 解决通过自定义设置打开热点后手机搜索不到热点的问题。
- azkaban的简单使用
- 酷炫的SVG 动态图标
- Android Studio无法打印Logout日志
- [CQOI2009]叶子的染色
- Qt中运行后台线程不阻塞UI线程的方案
- 一个针对string的较好的散列算发djb2
- Android-SQLiteOpenHelper里增删改查