如何在python中从变量中删除某些单词和数字

如何在python中从变量中删除某些单词和数字,python,python-3.x,Python,Python 3.x,我制作了一个剧本,取材于该系列的标题,但每个标题都有一年和“onlajn sa prevodom”。年份因系列而异。如何使用python删除年份和“onlajn sa prevodom” naslov = "Tajkun (2020) onlajn sa prevodom" 如果我理解你的期望,这可能就是你想要的 naslov = "Tajkun (2020) onlajn sa prevodom" print(naslov[:naslov.find('

我制作了一个剧本,取材于该系列的标题,但每个标题都有一年和“onlajn sa prevodom”。年份因系列而异。如何使用python删除年份和“onlajn sa prevodom”

naslov = "Tajkun (2020) onlajn sa prevodom"

如果我理解你的期望,这可能就是你想要的

naslov = "Tajkun (2020) onlajn sa prevodom"
print(naslov[:naslov.find('(')].strip())

Tajkun

只有当每一行都包含
“()”
使用常规表达式时,这才有效。这就是它们的设计目的

import re
title = "Tajkun (2020) onlajn sa prevodom"
corrected_title = re.sub(r"\s*\(\d+\) onlajn sa prevodom", "", title)

你最好的选择是正则表达式匹配。如果您非常确定字符串将包含这个“(year)onlajn sa prevodom”模式,那么您可以将其作为

pattern=r“\s\([0-9]+\)仅限AJN sa prevodom”
逐步:

\s
表示空白

\([0-9]+\)
表示在两个括号之间匹配一个或多个数字

尾随的“onlajn sa prevodom”仅用于匹配,以确保(xxxx)之间的数字后跟短语。下面是一个与您的示例相匹配的简短程序

import re

if __name__ == '__main__':
    expr = r"\s\([0-9]+\) onlajn sa prevodom"
    naslov1 = "Tajkun (2020) onlajn sa prevodom"
    naslov2 = "Tajkun (2019) onlajn sa prevodom"
    naslov3 = "Tajkun (102) onlajn sa prevodom"
    naslov4 = "Tajkun (1990) onlajn sa prevodom"
    print(re.split(expr, naslov1))
    print(re.split(expr, naslov2))
    print(re.split(expr, naslov3))
    print(re.split(expr, naslov4))
输出:

['Tajkun', '']
['Tajkun', '']
['Tajkun', '']
['Tajkun', '']
要获得标题,只需分配re.split()的输出

我强烈建议学习正则表达式。这是一个很好的方法。

import-re
naslov=“Tajkun(2020)onlajn sa prevodom”
re.sub(“\([0-9]{4}\)onlajn sa prevodom”,”,naslov)

有关的详细信息。

请发布您的预期输出。使用
naslov.split()[0]
naslov.partition(“”)[0]
@MayankPorwal和dawg,这在一般情况下不起作用,因为标题可以是多个单词。预期输出是
“Tajkun”
,如果源字符串是
“复仇者:终局”(复仇者:终局)(2019)onlajn sa prevodom)
,则输出将是
“复仇者:终局”
。(是的,OP本可以提供更好的示例,但对问题的描述相当精确。)@Amadan您可以在括号中拆分
)。使用以下命令:
naslov.split(“(”)[0]
my_title = re.split(expr, naslov1)[0]
print(my_title)