Python 如何在指定字符串的一部分后获取指定数量的字符?

Python 如何在指定字符串的一部分后获取指定数量的字符?,python,string,Python,String,假设我有一个如下定义的字符串: string1 = '23h4b245hjrandomstring345jk3n45jkotherrandomstring' string2 = substring(string1,'randomstring', 11) 目标是使用指定的搜索项和该搜索项后要获取的指定数量的字符来获取字符串部分(这部分例如“randomstring”)后的11个字符(例如“345jk3n45jk”) 我试过这样做: string1 = '23h4b245hjrandomstri

假设我有一个如下定义的字符串:

string1 = '23h4b245hjrandomstring345jk3n45jkotherrandomstring'
string2 = substring(string1,'randomstring', 11)
目标是使用指定的搜索项和该搜索项后要获取的指定数量的字符来获取字符串部分(这部分例如“randomstring”)后的11个字符(例如“345jk3n45jk”)

我试过这样做:

string1 = '23h4b245hjrandomstring345jk3n45jkotherrandomstring'
string2 = substring(string1,'randomstring', 11)

我感谢你们提供的任何帮助

在一行中,使用split,并假设您的randomstring在字符串中是唯一的,这似乎是您表述问题时的情况:

string2 = string1[string1.find("randomstring")+len("randomstring"):string1.find("randomstring")+len("randomstring")+11]

string1 = '23h4b245hjrandomstring345jk3n45jkotherrandomstring'
randomstring = 'randomstring'
nb_char_to_take = 11

# split using randomstring as splitter, take part of the string after, i.e the second part of the array, and then the 11 first character
result = string1.split(randomstring)[1][:nb_char_to_take]

您可以使用这样一个简单的正则表达式

import re

s = "23h4b245hjrandomstring345jk3n45jkotherrandomstring"
result = re.findall("randomstring(.{11})", s)[0]

你可以用这个。它被称为字符串切片,你基本上计算字母的位置,然后冒号前的第一个数字是你的起点,第二个是你的终点当你输入这些位置数字时,你应该得到这些位置之间的任何数字,最后是一个不同的函数,我强烈建议你在YouTube上搜索字符串切片,因为我的解释对你没有帮助,还可以搜索*Find string method*,如果你知道这些函数背后的想法的话。抱歉,没什么帮助,希望视频有帮助。

您忘记了包含
子字符串
函数虽然只有代码的答案可能会回答这个问题,但您可以通过为代码提供上下文来显著提高答案的质量,这也是此代码有效的原因之一,以及一些参考文件供进一步阅读。From:“简洁是可以接受的,但更全面的解释更好。”