在特定的子string之后获取一个string

我怎么能得到一个特定的子string后的string。

例如,我想在my_string="hello python world , i'm a beginner " "world"中的"world"之后得到stringmy_string="hello python world , i'm a beginner "

最简单的方法可能只是分裂你的目标词

 my_string="hello python world , i'm a beginner " print my_string.split("world",1)[1] 

拆分采取单词(或字符)拆分和可选的拆分数量的限制。

在这个例子中,分割“世界”,并将其限制为只有一个分割。

 s1 = "hello python world , i'm a beginner " s2 = "world" print s1[s1.index(s2) + len(s2):] 

如果要处理s1 存在s2的情况,则使用s1.find(s2)而不是index 。 如果该调用的返回值是-1 ,那么s2不在s1

我很惊讶没有人提到partition

 def substring_after(s, delim): return s.partition(delim)[2] 

恕我直言,这个解决scheme比@ arshajii更可读。 除此之外,我认为@ arshajii是最快的 – 它不会创build任何不必要的副本/子string。

如果你想用正则expression式,你可以简单地使用一个非捕获组来获取单词“world”,然后抓取所有的东西,就像这样

 (?:world).* 

示例string在这里被testing

这是一个古老的问题,但我面临一个非常相同的情况下,我需要拆分一个string使用作为“dem”字“低”的问题对我来说,我已经在同一个string下面和下面的字。

我用这种方式使用re模块解决了这个问题

 import re string = '...below...as higher prices mean lower demand to be expected. Generally, a high reading is seen as negative (or bearish), while a low reading is seen as positive (or bullish) for the Korean Won.' 

使用re.split与正则expression式来匹配确切的单词

 stringafterword = re.split('\\blow\\b',string)[-1] print(stringafterword) ' reading is seen as positive (or bullish) for the Korean Won.' 

通用代码是:

 re.split('\\bTHE_WORD_YOU_WANT\\b',string)[-1] 

希望这可以帮助别人!