我如何能得到一个特定的子字符串后的字符串?
例如,我想在“world”后面输入字符串
my_string="hello python world, I'm a beginner"
...在这种情况下是:“,我是初学者”)
我如何能得到一个特定的子字符串后的字符串?
例如,我想在“world”后面输入字符串
my_string="hello python world, I'm a beginner"
...在这种情况下是:“,我是初学者”)
当前回答
最简单的方法可能就是把你的目标单词分开
my_string="hello python world , i'm a beginner"
print(my_string.split("world",1)[1])
Split接受要拆分的单词(或字符),并可选地限制拆分的次数。
在这个例子中,对“world”进行分割,并将其限制为一次分割。
其他回答
试试下面的方法:
import re
my_string="hello python world , i'm a beginner"
p = re.compile("world(.*)")
print(p.findall(my_string))
# [" , i'm a beginner "]
最简单的方法可能就是把你的目标单词分开
my_string="hello python world , i'm a beginner"
print(my_string.split("world",1)[1])
Split接受要拆分的单词(或字符),并可选地限制拆分的次数。
在这个例子中,对“world”进行分割,并将其限制为一次分割。
s1 = "hello python world , i'm a beginner"
s2 = "world"
print(s1[s1.index(s2) + len(s2):])
如果你想处理s2在s1中不存在的情况,那么使用s1.find(s2)而不是index。如果该调用的返回值是-1,则s2不在s1中。
你可以使用名为substring的包。只需使用命令pip install substring进行安装。您可以通过只提到开始和结束字符/索引来获得子字符串。
例如:
import substring
s = substring.substringByChar("abcdefghijklmnop", startChar="d", endChar="n")
print(s)
输出:
# s = defghijklmn
我很惊讶没人提到分区。
def substring_after(s, delim):
return s.partition(delim)[2]
s1="hello python world, I'm a beginner"
substring_after(s1, "world")
# ", I'm a beginner"
恕我直言,这个解决方案比@arshajii的更具可读性。除此之外,我认为@arshajii的是最好的,因为它是最快的——它不会创建任何不必要的副本/子字符串。