Bir ipim var. Belirli bir karakterden sonra tüm metni nasıl silebilirim? ( Bu durumda...
)
Sonraki metin ...
değişecektir, bu yüzden belirli bir karakterden sonra tüm karakterleri kaldırmak istiyorum.
Bir ipim var. Belirli bir karakterden sonra tüm metni nasıl silebilirim? ( Bu durumda...
)
Sonraki metin ...
değişecektir, bu yüzden belirli bir karakterden sonra tüm karakterleri kaldırmak istiyorum.
Yanıtlar:
Ayırıcıya en fazla bir kez bölün ve ilk parçayı alın:
sep = '...'
rest = text.split(sep, 1)[0]
Ayırıcı yoksa ne olması gerektiğini söylemediniz. Bu ve Alex'in çözümü bu durumda tüm dizeyi döndürecektir.
Ayırıcısının '...' olduğunu varsayarsak, ancak herhangi bir dize olabilir.
text = 'some string... this part will be removed.'
head, sep, tail = text.partition('...')
>>> print head
some string
Ayırıcı bulunamazsa, head
orijinal dizenin tümünü içerir.
Bölümleme işlevi Python 2.5'e eklendi.
bölüm (...) S. bölüm (sep) -> (kafa, sep, kuyruk)
Searches for the separator sep in S, and returns the part before it, the separator itself, and the part after it. If the separator is not found, returns S and two empty strings.
Bir dize ayırıcı son oluşumundan sonra her şeyi kaldırmak istiyorsanız ben bu iyi çalışır buluyorum:
<separator>.join(string_to_split.split(<separator>)[:-1])
Örneğin string_to_split
, bir yolsa root/location/child/too_far.exe
ve yalnızca klasör yolunu istiyorsanız, bölebilir "/".join(string_to_split.split("/")[:-1])
ve
root/location/child
RE olmadan (ki ne istediğinizi varsayalım):
def remafterellipsis(text):
where_ellipsis = text.find('...')
if where_ellipsis == -1:
return text
return text[:where_ellipsis + 3]
veya RE ile:
import re
def remwithre(text, there=re.compile(re.escape('...')+'.*')):
return there.sub('', text)
Find yöntemi bir dizgideki karakter konumunu döndürür. Sonra, her şeyi karakterden kaldırmak istiyorsanız, bunu yapın:
mystring = "123⋯567"
mystring[ 0 : mystring.index("⋯")]
>> '123'
Karakteri korumak istiyorsanız, karakter konumuna 1 ekleyin.
import re
test = "This is a test...we should not be able to see this"
res = re.sub(r'\.\.\..*',"",test)
print(res)
Çıktı: "Bu bir testtir"
Bir dosyadan:
import re
sep = '...'
with open("requirements.txt") as file_in:
lines = []
for line in file_in:
res = line.split(sep, 1)[0]
print(res)