如何删除尖括号内的所有字符,包括字符串中的括号?如何删除("\r\n")和("."+"任意3个字符")之间的所有文本?这可能吗?我目前正在使用@xkcdjerry 的解决方案
例如
body = """Dear Students roads etc. you place a tree take a snapshot, then when you place arnbuilding, take a snapshot. Place at least 5-6 objects and then have 5-6rnsnapshots. Please keep these snapshots with you as everyone will be askedrnto share them during the class.rnrnI am attaching one PowerPoint containing instructions and one video ofrnexplanation for your reference.rnrnKind regards,rnTeacher Namern zoom_0.mp4rn<https://drive.google.com/file/d/1UX-klOfVhbefvbhZvIWijaBdQuLgh_-Uru4_1QTkth/view?usp=drive_web>"""
d = re.compile("rn.+?\....")
body = d.sub('', body)
a = re.compile("<.*?>")
body = a.sub('', body)
print(body)```
For some reason the output is fine except that it has:
```gle.com/file/d/1UX-klOfVhbefvbhZvIWijaBdQuLgh_-Uru4_1QTkth/view?usp=drive_web>
随机连接到末端我该如何修复它。
答案
您的问题可以通过正则表达式解决:
将其放入shell:
import re
a=re.compile("<.*?>")
a.sub('',"Keep this part of the string< Remove this part>Keep This part as well")
输出:
'Keep this part of the stringKeep This part as well'
第二个问题:
import re
re.compile("rn.*?\..{3}")
a.sub('',"HellornFilename.png")
输出:
'Hello'
细分
Regex是一种强大的方法,可以在较大的字符串中查找、替换和更改小字符串,如需进一步阅读,请参阅https://docs.python.org/3/library/re.html.同时,以下是这个答案中使用的正则表达式信息的细分:
.
表示任何字符*?
表示根据需要尽可能多但尽可能少(非贪婪匹配)
因此.*?
表示任意数量的字符但尽可能小
注意:第二个正则表达式中有\.
的原因是匹配中的.
需要由转义,而CCD_6又需要作为
\
转义
方法:re.compile(patten:str)
编译正则表达式以供进一步使用。CCD_ 9用repl替换CCD_。
希望能有所帮助。