Python中如何用单个正则删除字符串中所有含任意数量斜杠的匹配片段
正则匹配替换解决方案
问题原因
你之前使用的正则r"/.*?/\w+"要求匹配内容中必须至少出现2个/,且第二个/后必须跟至少1个单词字符,因此当路径片段仅含1个/时无法被匹配删除。
解决方案
如果你的需求是删除所有以/开头、由/和单词字符组成的连续路径片段(无论片段内的/是单个还是连续多个),可以使用如下正则:r"/[\w/]+"
完整代码示例
import re # 测试用例1 txt1 = "/this/is//an example of what I want /to///do" result1 = re.sub(r"/[\w/]+", "", txt1) print(result1) # 输出:' example of what I want ' # 测试用例2 txt2 = "/this/is//an example of what i want to /do" result2 = re.sub(r"/[\w/]+", "", txt2) print(result2) # 输出:' example of what i want to '
正则说明
/:匹配开头的斜杠[\w/]+:匹配至少1个单词字符(字母、数字、下划线)或斜杠的连续序列
如果不需要匹配下划线,可以将\w替换为a-zA-Z0-9,正则改为r"/[a-zA-Z0-9/]+"。
内容的提问来源于stack exchange,提问作者Almosino
相关产品推荐
相关产品推荐

