如何在python中从变量中删除某些单词和数字
我制作了一个剧本,取材于该系列的标题,但每个标题都有一年和“onlajn sa prevodom”。年份因系列而异。如何使用python删除年份和“onlajn sa prevodom”如何在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('
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)