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.
python
replace
python-2.6
Solihull
sumber
sumber
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.
sumber
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.
sumber
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 sepertiroot/location/child/too_far.exe
dan Anda hanya menginginkan jalur folder, Anda dapat membaginya"/".join(string_to_split.split("/")[:-1])
dan Anda akan mendapatkannyaroot/location/child
sumber
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)
sumber
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)
sumber
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.
sumber
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"
sumber
cara mudah lain menggunakan re akan
import re, clr text = 'some string... this part will be removed.' text= re.search(r'(\A.*)\.\.\..+',url,re.DOTALL|re.IGNORECASE).group(1) // text = some string
sumber