Rumah > Artikel > pembangunan bahagian belakang > Program Python untuk mengekstrak rentetan sehingga aksara bukan abjad angka pertama
Rentetan #Python ialah jujukan aksara yang mewakili maklumat atau data. Rentetan biasa boleh mengandungi pelbagai aksara yang disertakan dalam petikan tunggal atau berganda, tetapi rentetan alfanumerik hanya mengandungi nombor dan huruf . Kedua-dua rentetan alphanumeric dan non-alphanumeric digunakan dan digunakan dalam pelbagai senario, termasuk perlindungan kata laluan, pemprosesan dan pengesahan data, pemformatan, dsb.
Boleh mengenal pasti dan mengekstrak corak tertentu. Kami juga boleh menyediakan kombinasi yang berbeza menggunakan jenis rentetan ini. Kami akan melakukan operasi berdasarkan rentetan ini. Tugas kami adalah untuk mengekstrak rentetan sehingga aksara bukan abjad angka pertama ditemui.
Kita perlu mengeluarkan subrentetan daripada rentetan asal sebelum menemui aksara bukan abjad angka. Marilah kita memahami perkara ini melalui contoh.
Mari kita pertimbangkan kamus dengan nilai berikut -
Input: Inp_STR = "Sales18@22!Roam"
Rentetan yang diberikan terdiri daripada huruf, nombor dan aksara khas. Sebaik sahaja kita menemui aksara bukan abjad angka, kita perlu mendapatkan semula subrentetan itu.
Output: Sales18
Kita dapat melihat subrentetan "Sales18" dikembalikan daripada rentetan asal kerana selepas ini aksara bukan abjad angka ditemui, iaitu "@". Sekarang setelah kita memahami pernyataan masalah, mari kita bincangkan beberapa penyelesaian.
Ini adalah cara asas dan lebih mudah untuk mengekstrak rentetan berdasarkan syarat yang disediakan. Kami akan menghantar rentetan dan mencipta pembolehubah baharu yang akan menyimpan semua aksara alfanumerik iaitu huruf (huruf besar dan kecil) dan nombor. Selepas itu, kami akan melalui rentetan asal dan mengulangi setiap aksara.
Kami akan membina syarat untuk menyemak sama ada aksara dalam rentetan asal adalah abjad angka. Sebaik sahaja aksara bukan abjad angka ditemui, gelung pecah dan mengembalikan subrentetan.
Berikut ialah contoh mengekstrak rentetan sehingga aksara bukan abjad angka pertama -
Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") ExSTR = "" alphaNum = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" for x in Inp_STR: if x not in alphaNum: break else: ExSTR += x print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
The original string is: Sales18@22Roam The extracted string till 1st Non-Alphanumeric character: Sales18
Regex atau "re" ialah alat pengaturcaraan yang berkuasa untuk mencari dan memadankan corak. Corak ini diluluskan dalam bentuk ekspresi unik. Menggunakan modul ini, kami akan mengesan corak bukan abjad angka dalam rentetan mentah dan mendapatkan semula urutan pertama yang ditemui. Kami menggunakan fungsi "search()" untuk mencari rentetan bagi corak bukan abjad angka yang diwakili oleh ungkapan "W+".
"W" menunjukkan kelas bukan abjad angka dan "+" menetapkan logik padanan berterusan untuk aksara bukan abjad. Kaedah ".start()" mengembalikan indeks permulaan subrentetan yang sepadan, nilai indeks yang akan digunakan untuk mendapatkan subrentetan yang dikehendaki.
Berikut ialah contoh -
import re Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") ExSTR = re.search(r"\W+", Inp_STR).start() print(f"The 1st non-alphanumeric character is encountered at: {ExSTR}") ExSTR = Inp_STR[ : ExSTR] print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
The original string is: Sales18@22Roam The 1st non-alphanumeric character is encountered at: 7 The extracted string till 1st Non-Alphanumeric character: Sales18
Ini adalah cara lain untuk mengekstrak rentetan sehingga aksara bukan abjad angka pertama ditemui. Dalam pendekatan ini, kami akan menggunakan fungsi "findall()" daripada modul semula untuk mencari semua kejadian subrentetan yang terdiri daripada aksara alfanumerik.
akan mendapat senarai subrentetan yang sepadan dan kami akan mendapatkan semula subrentetan pertama menggunakan nilai indeks "0". Kami akan menggunakan ungkapan biasa: "[dA-Za-z]*", yang mewakili sifar atau lebih aksara abjad angka dalam satu baris.
Simbol ungkapan biasa "d" sepadan dengan mana-mana nombor antara 0 dan 9, "A-Z" sepadan dengan mana-mana huruf besar antara A dan Z, "#🎜🎜 #a-z" sepadan dengan mana-mana huruf kecil dari a hingga z.
Contoh
import re Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") ExSTR = re.findall(r"[\dA-Za-z]*", Inp_STR)[0] print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")Output
The original string is: Sales18@22Roam The extracted string till 1st Non-Alphanumeric character: Sales18
x" bukan abjad angka. Ini dilakukan dengan bantuan kaedah "isalnum()" yang menentukan sifat alfanumerik rentetan. Selepas itu kita akan menggunakan senarai slicing untuk mengekstrak rentetan sehingga aksara abjad angka pertama.
Contoh
Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") for x in range(len(Inp_STR)): if not Inp_STR[x].isalnum(): ExSTR = Inp_STR[:x] print(f"The 1st non-alphanumeric character is encountered at: {x}") break else: ExSTR = Inp_STR print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")Output
The original string is: Sales18@22Roam The 1st non-alphanumeric character is encountered at: 7 The extracted string till 1st Non-Alphanumeric character: Sales18
search()" dan "findall()" untuk mengekstrak rentetan yang berkaitan. Akhir sekali, kami membincangkan penyelesaian lain berdasarkan penghirisan senarai, yang melibatkan penggunaan kaedah "isalnum()".
Atas ialah kandungan terperinci Program Python untuk mengekstrak rentetan sehingga aksara bukan abjad angka pertama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!