获取特定子字符串后的字符串

问题描述:

如何获取特定子字符串后的字符串。获取特定子字符串后的字符串

比如我想要得到的字符串后"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] 

分取词(或字符),为了将上并且可选地限制分割的数量。

在这个例子中分裂的“世界”,它限制为只在一组。

+12

“最简单的方法可能只是对你的目标词吐” :-)是的,这是应该做的正确方法。 – Matthias

+5

's/spit/split /'这个答案,除非你真的对你的数据感到沮丧。但否则,完美。 – abarnert

+0

如果我需要将文本与“低”字分开,并且它包含之前的低位字,则这不起作用! –

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中。

+2

+1不产生不必要的副本/子 – shx2

如果你想这样做,使用正则表达式,你可以简单地用一个non-capturing group,得到了这个词“世界”,然后后抢的一切,像这样

(?:world).* 

的例子字符串测试here

+9

有人当面对有一个问题认为“我知道,我使用正则表达式。” ...现在你有2个问题... –

+2

哈哈,我的错误,我认为这是标记正则表达式,所以我试图给出一个正则表达式的答案。哦,它现在在那里。 – Tadgh

+1

它的一切都好...它肯定是剥皮这只猫的一种方式...虽然这个问题的矫枉过正(imho) –

我很惊讶没有人提到partition

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

恕我直言,这个解决方案比@ arshajii更具可读性。除此之外,我认为@ arshajii是最快的 - 它不会创建任何不必要的副本/子串。

+2

这是一个很好的解决方案,并处理子字符串不是基本字符串的一部分的情况。 – mattmc3

这是一个老问题,但我遇到了同样的情况,我需要拆分使用作为demiliter词串“低”对我来说,问题是,我有相同的字符串下面的字和低。

我解决它使用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用正则表达式匹配确切的词

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] 

希望这可以帮助别人!

+1

也许你也可以使用:''string.partition(“low”)[2]''? (注意“低”两侧的空格 –