Sre*_*a E 0 python string python-2.7 python-3.x
我希望在一个字符串中得到一个after和之前的匹配.
例如,使用以下字符串:
"Hello I am Jim!"
Run Code Online (Sandbox Code Playgroud)
搜索字符串为:"I am",搜索字符串之前的匹配应为:"Hello"并且之后的匹配应为:"Jim!".
我怎样才能做到这一点?
使用str.partition哪个做到这一点:
S.rpartition(sep) -> (head, sep, tail)搜索分隔
sep的S开始,结束S,和之前返还一部分,该分离器本身,而其后的部分.
所以,使用你的示例字符串:
before, search_str, after = "Hello I am Jim!".partition("I am ")
Run Code Online (Sandbox Code Playgroud)
现在before,search_str和after有:
>>> print(before)
Hello
>>> print(search_str)
I am
>>> print(after)
Jim!
Run Code Online (Sandbox Code Playgroud)
str.partition还会为您返回分隔符作为返回元组中的中间元素.如果您不需要,那就str.split(separator)足够了.
你也可以使用 split()
>>> before, after = "Hello I am Jim!".split("I am")
>>> before
'Hello '
>>> after
' Jim!'
Run Code Online (Sandbox Code Playgroud)