使用 reg ex 和 re.sub 匹配模式

我试图从一些数据中删除以下模式,但得到的结果好坏参半。

--endof["somerandomtext"]

基本上,文本总是以 开头--endof["和结尾,"]并且之间的单词会发生变化。
我正在使用的代码行目前无法正常工作。

d = re.sub('--+([a-zA-Z0-9_"-\[]*)+\]', " ", d)

我是尝试使用 re.sub 或任何方法解析数据的新手。我一直在猜测如何尝试使这条线正常工作,我可能有一些错误导致了我的问题。

任何帮助表示赞赏。


开心每一天1111
浏览 109回答 2
2回答

牛魔王的故事

要删除以 开头--endof["和结尾的文本"],您应该将它们匹配为精确字符,并匹配中间的子字符串。因为[和]在正则表达式中具有特殊含义,所以您需要使用\(如注释中正确所述,]不必在此处转义,为了更加清晰而将其转义)对它们进行转义。在此示例中,中间的子字符串由一个或多个字母和数字组成(因此是+)。它可以根据需要进行更改。str = re.sub('--endof\["[a-zA-Z0-9]+"\]', "", str)为了进一步打破这个问题 ---endof完全匹配这些字符。\[匹配字符[。"匹配字符"。[a-zA-Z0-9]+匹配由一个或多个字母和数字组成的字符串(+表示“一个或多个”)。"再次匹配字符"。\]匹配字符](并且可以单独指定])。

月关宝盒

s = re.sub('--endof\[[^]]+]', '', s)--endof[这会删除以 开头、后跟任意数量的非]s ( [^]]+) 和 a 的字符串]。适用于任何不包含右括号的文本。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python