python - 检查字符串中是否包含变量str+int+int的序列
问题描述
Python 菜鸟在这里。我有以下问题,有一个字符串包含这样的系列剧集:"whatever S01E02 sowhat"
其中系列(01)可以假设任何值(01 到 99),剧集(02)也可以(01 到 99).. 我想在字符串中找到它。我想使用一种聪明的方法,比如 if string contains a sequence of str(S)+int+int+str(E)+int+int
then... 但我所做的只是一个包含所有可能系列(代码中的 ij )和剧集(代码中的 kl )的列表,并循环创建一个列表...
如果一个字符串包含一个序列,有人知道如何进行此验证alphabetic+int+int+alphabetic+int+int
吗?
我发现以下帖子 Python 是否有字符串“包含”子字符串方法? 找到子字符串,但我无法适应我想要的东西。
我想以"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)
解决方案
您可以为此使用正则表达式。以下将查找字符串中的所有匹配项:
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
推荐阅读
- c# - 使用 InsightDb 更新到 .Net core 3.1 后,sql 事务无法正常工作
- javascript - 以单个表单发送多个 DIV 容器内容
- azure-databricks - Azure Databricks 中的 Azure eventthub 访问
- python - 在 Graphene/Graphql 中访问数据库 ID
- php - Symfony - 由于驱动程序,postgrsql 连接失败
- recursion - F# 和递归问题
- sql-server - 当列包含mm-dd-yyyy,dd-mm-yyyy时如何将nvarchar类型日期转换为dd-mm-yyyy
- less - 如何配置 Rollup 和 PostCSS 以捆绑 LESS 和 CSS (Tailwind)
- google-sheets - 按日期重新排序和重新组合多个列
- reactjs - 材质 UI 样式错误。文本和底部导航有错误