获取特定子字符串后的字符串
如何获取特定子字符串后的字符串。获取特定子字符串后的字符串
比如我想要得到的字符串后"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]
分取词(或字符),为了将上并且可选地限制分割的数量。
在这个例子中分裂的“世界”,它限制为只在一组。
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
中。
+1不产生不必要的副本/子 – shx2
有人当面对有一个问题认为“我知道,我使用正则表达式。” ...现在你有2个问题... –
哈哈,我的错误,我认为这是标记正则表达式,所以我试图给出一个正则表达式的答案。哦,它现在在那里。 – Tadgh
它的一切都好...它肯定是剥皮这只猫的一种方式...虽然这个问题的矫枉过正(imho) –
我很惊讶没有人提到partition
。
def substring_after(s, delim):
return s.partition(delim)[2]
恕我直言,这个解决方案比@ arshajii更具可读性。除此之外,我认为@ arshajii是最快的 - 它不会创建任何不必要的副本/子串。
这是一个很好的解决方案,并处理子字符串不是基本字符串的一部分的情况。 – 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]
希望这可以帮助别人!
也许你也可以使用:''string.partition(“low”)[2]''? (注意“低”两侧的空格 –
“最简单的方法可能只是对你的目标词吐” :-)是的,这是应该做的正确方法。 – Matthias
's/spit/split /'这个答案,除非你真的对你的数据感到沮丧。但否则,完美。 – abarnert
如果我需要将文本与“低”字分开,并且它包含之前的低位字,则这不起作用! –