检查字符串

时间:2019-03-21 09:54:26

标签: python substring

Python noob在这里。 我遇到以下问题,其中有一个字符串,其中包含类似这样的一系列剧集:"whatever S01E02 sowhat" 其中系列(01)可以假定任何值(01到99),情节(02)也可以(01到99)..我想在字符串中找到它。 我想用一个聪明的办法 如果字符串包含str(S)+int+int+str(E)+int+int的序列,则... 但是我要做的只是一个包含所有可能的系列(代码中的ij)和情节(代码中的kl)的列表,然后循环创建一个列表...

如果字符串包含序列alphabetic+int+int+alphabetic+int+int,有人知道如何进行验证吗?

我发现了以下帖子 Does Python have a string 'contains' substring method? 查找子字符串,但我无法适应想要的东西。

我想搜索一个子字符串("S"+int+int+"E"+int+int) 这些整数可以巧妙的方式具有任何整数值。

下面是我实现的代码:

series_episode = "Series whatever S01E04 formating no-one-cares"
list_SijEkl = []
i,j,k,l=0,1,0,1
while i < 2:
    while j < 10:
        k,l=0,1
        while k<3:
            while l<10:

list_SijEkl.append("S"+str(i)+str(j)+'E'+str(k)+str(l))

                l+=1
            l=0
            k+=1
        j+=1
    i+=1

#print(list_SijEkl)

for episode in list_SijEkl:
    if episode in series_episode:
        cut = series_episode.split(episode)
        before = cut[0]
        after = cut[1]
        print('cut before '+ before)
        print('cut after'+ after)
        print (before + episode)
        print ('what i want in the end: '+before + episode)

2 个答案:

答案 0 :(得分:5)

您可以为此使用正则表达式。以下将在字符串中找到所有出现的内容:

import re 

s = "Series whatever S01E04 formating no-one-cares"
re.findall('.+(S[0-9]{2}E[0-9]{2}).+', s)

有关正则表达式的更多信息,请参见:https://docs.python.org/3/howto/regex.html

答案 1 :(得分:0)

在这种情况下,您可以使用try-except方法。您检查该行中的每个单词,然后:

if len(word)==6:
     if word[0]=='S' and word[3]=='E':
          try:
              a=int(word[1:3])
              b=int(word[3:])
              print(word,' found')
          except:
              pass