在特定的子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]
希望这可以帮助别人!