Python - 如何删除特定单词/字符后的其余字符串

时间:2015-05-07 07:25:04

标签: python kodi

我是一个完整的python noob,所以请放轻松。

我目前正在黑客/编辑一个名为伪库的kodi插件,这样它就可以清理我正在抓取的流的标题,这样我就可以把它放到一个更好看的EPG中。

目前它们看起来像这样:

  

[COLOR white] 3E(现在 - 07 - 30那70年代秀) - .strm

我已经确定了产生此代码的代码:

FleName = (title + ' - ' + eptitle + '.strm').replace(":"," - ")
FleName = re.sub('[\/:*?<>|!@#$/:]', '', FleName)

并编辑如下(凌乱,我知道,我确信有一个更好的方法,正如我上面说的那样,我是一个菜鸟!)

FleName = (title + '.strm').replace(":"," - ").replace("[COLOR white]","").replace("[COLOR blue]","")
FleName = re.sub('[\/:*?<>|!@#$/:]', '', FleName)

然后将上述标题更改为:

  <3>(现在 - 07 - 30那70年代秀).strm

我真正想要的输出是:

3E.strm

我能找到最接近我的问题的答案是:

https://stackoverflow.com/a/14599280

但是,我也在括号内删除括号,但上述内容并没有解决这个问题。

  

Zee Cinema(现在 - 19 - 15 Baazigar(1993))。strm

我看过strip以删除所有字符,包括“(现在”但不能完全解决。请有人为我的问题提供一个通用的解决方案,以便标题是否

  

[COLOR white] 3E(现在 - 07 - 30那70年代秀) - .strm OR

     

[COLOR white] Zee Cinema(现在 - 19 - 15 Baazigar(1993))。strm

它只输出标题和.strm。所以在上面的例子中:

3E.strm
Zee Cinema.strm

非常感谢您的期待和希望帮助我解决我的问题。

3 个答案:

答案 0 :(得分:4)

FileName.split(']')[1].split('(')[0].strip() + ".strm"

答案 1 :(得分:2)

所以你基本上有[something]text you want (something else).strm形式的东西?解决此问题的最简单方法是在开始(之后和扩展名之前忽略所有内容:

re.sub(r"^[^\]]+\]([^(]+) \(.*\.strm$",r"\1.strm",FleName)

但请注意故障模式。对于格式不正确的文件名,在大多数情况下根本不更改它们将会失败。在大多数情况下,克雷格将失败,但有例外。可能会出现更复杂的解决方案来为更广泛的格式不正确的文件名引发异常,但这些解决方案都没有。

答案 2 :(得分:0)

根据原始标题的模式,您似乎需要在第一个&#39;]之间获取文本(&#39;对,删除空白并附加扩展名。这是一个示例:

originalFileName = "[COLOR white]3E (Now - 07 - 30 That '70s Show) - .strm"
fileName, fileExt = originalFileName.split(".")
newFileName = ".".join([re.search("\](.*?)\(", fileName).groups()[0].strip(), fileExt])