我有以下字符串:在罗斯托克看到等等等等等等
从'in'一词中删除所有字符串内容直到结尾的pythonic方法是什么,留下这样的字符串:'blah blah blah blah blah'
答案 0 :(得分:5)
使用split(" in ")
,您可以将"中的字符串拆分为"。
这会生成一个包含两端的列表。现在使用[0]:
进行第一部分 string.split(" in ")[0]
如果你不想要最后的空格字符,那么使用rstrip():
string.split(" in ")[0].rstip()
欢迎。
答案 1 :(得分:1)
如果基本单位是单词,请使用正则表达式。
import re
line = 'justin in Rostock'
print(re.split(r'\bin\b', line, maxsplit=1)[0].strip())
贾斯汀
如果基本单位是字符,请使用str.partition
。
line = 'blah blah blah blah in Rostock'
new_string = line.partition('in')[0].strip()
print(new_string)
blah blah blah blah blah
strip()
删除了in
答案 2 :(得分:1)
我不知道你是否称它为pythonic。至少它似乎做了这个工作。
def getNameAndCity(nameWithCity: str) -> (str, str):
if not " in " in nameWithCity:
return nameWithCity, None
pieces = nameWithCity.split(" in ")
name = " in ".join(pieces[0:-1])
return name, pieces[-1]
# No 'in' at all
assert ("Michael",None) == getNameAndCity("Michael")
# Nothing special
assert ("Johan", "Oslo") == getNameAndCity("Johan in Oslo")
# "'in' in City
assert ("Sandra", "Berlin") == getNameAndCity("Sandra in Berlin")
# 'in' in Name and City
assert ("Christine", "Berlin") == getNameAndCity("Christine in Berlin")
# 'in' as an extra token
assert ("Christine in Love", "Berlin") == getNameAndCity("Christine in Love in Berlin")
答案 3 :(得分:0)
s = "Ahe, Christiane Dr. von der Praxis für Kieferorthopädie in Rostock"
if " in " in s:
s = s[:s.find(" in ")]
# Else leave the string untouched.