Saya memiliki tali. Bagaimana cara menghapus semua teks setelah karakter tertentu? ( Dalam hal ini...
)
Teks setelahnya akan ...
berubah jadi saya itu sebabnya saya ingin menghapus semua karakter setelah yang tertentu.
Saya memiliki tali. Bagaimana cara menghapus semua teks setelah karakter tertentu? ( Dalam hal ini...
)
Teks setelahnya akan ...
berubah jadi saya itu sebabnya saya ingin menghapus semua karakter setelah yang tertentu.
Jawaban:
Pisahkan pemisah Anda paling banyak sekali, dan ambil bagian pertama:
sep = '...'
stripped = text.split(sep, 1)[0]
Anda tidak mengatakan apa yang akan terjadi jika pemisah tidak ada. Baik ini dan solusi Alex akan mengembalikan seluruh string dalam kasus itu.
Dengan asumsi pemisah Anda adalah '...', tetapi bisa berupa string apa pun.
text = 'some string... this part will be removed.'
head, sep, tail = text.partition('...')
>>> print head
some string
Jika pemisah tidak ditemukan, head
akan berisi semua string asli.
Fungsi partisi ditambahkan dengan Python 2.5.
partisi (...) S. partisi (sep) -> (kepala, sep, ekor)
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.
Jika Anda ingin menghapus semuanya setelah pemisah terakhir dalam sebuah string, saya menemukan ini berfungsi dengan baik:
<separator>.join(string_to_split.split(<separator>)[:-1])
Misalnya, jika string_to_split
adalah jalur seperti root/location/child/too_far.exe
dan Anda hanya menginginkan jalur folder, Anda dapat membaginya "/".join(string_to_split.split("/")[:-1])
dan Anda akan mendapatkannya
root/location/child
Tanpa RE (yang saya asumsikan adalah yang Anda inginkan):
def remafterellipsis(text):
where_ellipsis = text.find('...')
if where_ellipsis == -1:
return text
return text[:where_ellipsis + 3]
atau, dengan RE:
import re
def remwithre(text, there=re.compile(re.escape('...')+'.*')):
return there.sub('', text)
Dari file:
import re
sep = '...'
with open("requirements.txt") as file_in:
lines = []
for line in file_in:
res = line.split(sep, 1)[0]
print(res)
Metode find akan mengembalikan posisi karakter dalam string. Kemudian, jika Anda ingin menghapus semua hal dari karakter tersebut, lakukan ini:
mystring = "123⋯567"
mystring[ 0 : mystring.index("⋯")]
>> '123'
Jika Anda ingin mempertahankan karakter tersebut, tambahkan 1 ke posisi karakter.
import re
test = "This is a test...we should not be able to see this"
res = re.sub(r'\.\.\..*',"",test)
print(res)
Keluaran: "Ini adalah ujian"