我有一根绳子。如何删除某个字符后的所有文本?(在这种情况下……) 之后的文字将…这就是为什么我想删除某一个字符之后的所有字符。
当前回答
没有正则表达式(我假设这是你想要的):
def remafterellipsis(text):
where_ellipsis = text.find('...')
if where_ellipsis == -1:
return text
return text[:where_ellipsis + 3]
或者,使用正则表达式:
import re
def remwithre(text, there=re.compile(re.escape('...')+'.*')):
return there.sub('', text)
其他回答
find方法将返回字符串中的字符位置。然后,如果你想从角色中删除所有东西,这样做:
mystring = "123⋯567"
mystring[ 0 : mystring.index("⋯")]
>> '123'
如果你想保留字符,在字符位置上加1。
从文件中:
import re
sep = '...'
with open("requirements.txt") as file_in:
lines = []
for line in file_in:
res = line.split(sep, 1)[0]
print(res)
如果你想删除一个字符串中最后出现的分隔符之后的所有内容,我发现这很好:
. join (string_to_split.split <分离器>(<分离器>)[1]):
例如,如果string_to_split是一个像root/location/child/too_far.exe这样的路径,并且你只想要文件夹路径,你可以通过"/".join(string_to_split.split("/")[:-1])分割,你将得到 根/位置/孩子
还有一种方法是删除字符串中字符最后一次出现之后的所有字符(假设您想删除最后一个'/'之后的所有字符)。
path = 'I/only/want/the/containing/directory/not/the/file.txt'
while path[-1] != '/':
path = path[:-1]
import re
test = "This is a test...we should not be able to see this"
res = re.sub(r'\.\.\..*',"",test)
print(res)
输出:“这是一个测试”