HarmonyOS鸿蒙最全python中字符串和文本处理(很详细)_re_rule,2024年最新我离职后面试收割小米等大厂offer

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

import re
str = 'asd hfg; dfx, excvg, fgfr'
s = re.split(r'[;,\s]\s\*',str)
print(s)
结果:
['asd', 'hfg', 'dfx', 'excvg', 'fgfr']

3.有时有这样的需求,检查文件的扩展名,URL协议类型等,有一种简单的方法可以使用str.startswith()和str.endswith()方法就可以了。示例如下:
filename = 'name.txt'
print(filename.endswith('.txt'))
结果:
True



import os
f = os.listdir('.')
l1 = [name for name in f if name.endswith('.py')]
print(l1)
结果:
['run.py', '66.py', 'test.py', 'base\_data.py']

4.有时要对字符串中的文本做查找和替换,可以使用str.replace()方法即可。
str = 'i like you '
s2 = str.replace('like', 'love')
print(s2)
结果:
ℹ love you 

5. 针对更复杂的模式,可以使用re模块中的sub()函数/方法,如:我们想把日期格式从“11/27/2012”改写为“2020-11-27”:
import re

str = "今天是11/6/2020 明天是11/7/2020"
s2 = re.sub(r"(\d+)/(\d+)/(\d+)",r"\3-\1-\2",str)
print(s2)
结果:
今天是2020-11-6    明天是2020-11-7

6.sub()的第一个参数是匹配模式,第二个参数是要替换上的模式。类似“\3”这样的反斜杠加数字的符号代表着模式中捕获组的数量,其实正则是很强大的,想写出很棒的正则确实需要功力和经验,正则需要学习的还很多。
7.有时有这样的需求,不区分大小写在文本中进行查找或者替换,我们可以使用re模块并且对各种操作都要加上re.IGNORECASE 标记:
str = 'PYTHON, java , c, GO,c++ python SQL'
s2 = re.findall('python',str,flags=re.IGNORECASE)
print(s2)
结果:
['PYTHON', 'python']


import re
str = 'PYTHON, java , c, GO,c++ python SQL'
s2 = re.sub('python','HAHAHA',str,flags=re.IGNORECASE)
print(s2)
结果:
HAHAHA, java , c, GO,c++  HAHAHA SQL

8.下面说一下贪婪匹配和非贪婪匹配,有时我们用正则去匹配的时候,会有两种或多种情况都符合我们写的正则匹配规则,但是有一些结果并不是我们期望的:
import re

re_rule = re.compile(r'\"(.\*)\"')
str = '我喜欢"夜空中最亮的星"这首歌'
result = re_rule.findall(str)
print(result)
结果:
['夜空中最亮的星']

re_rule = re.compile(r'\"(.\*)\"')
str = '我喜欢"夜空中最亮的星"这首歌 ,你喜欢"故乡"这首歌'
result = re_rule.findall(str)
print(result)
结果:
['夜空中最亮的星"这首歌 ,你喜欢"故乡']

9.上面的这个例子中,采用的时贪婪匹配,尽可能的匹配符合规则的匹配项,但是结果不是我们要的,我们要最短的匹配项,我们只需要在*后面加?修饰符就可以了,这就是非贪婪匹配
import re

re_rule = re.compile(r'\"(.\*?)\"')
str = '我喜欢"夜空中最亮的星"这首歌 ,你喜欢"故乡"这首歌'
result = re_rule.findall(str)
print(result)
结果:
['夜空中最亮的星', '故乡']

10.有时我们想用正则对一段文本和进行匹配,并且希望它能匹配全文,把符合要求的都找出来,我们一般都用(.)来匹配任意字符,但是(.)不能匹配换行符,如下例子,(?:.|\n)指定了一个非捕获组,?:指定以什么符号开始匹配,re.compile()函数里的re.DOTALL也可以支持换行匹配
import re
re_rule = re.compile(r'/\\*(.\*?)\\*/')


![img](https://img-blog.csdnimg.cn/img_convert/9d61e5b95169ed1be73fdae688ff669d.png)
![img](https://img-blog.csdnimg.cn/img_convert/6d0ed9a2df150182d970e6a7f0688a8f.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

里获取](https://bbs.csdn.net/topics/618636735)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值