Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program Python untuk mengekstrak rentetan sehingga aksara bukan abjad angka pertama

Program Python untuk mengekstrak rentetan sehingga aksara bukan abjad angka pertama

王林
王林ke hadapan
2023-09-11 12:49:021448semak imbas

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.

Pemahaman Soalan

Kita perlu mengeluarkan subrentetan daripada rentetan asal sebelum menemui aksara bukan abjad angka. Marilah kita memahami perkara ini melalui contoh.

Senario input dan output

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.

Gunakan lelaran

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.

Contoh

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}")

Output

The original string is: Sales18@22Roam
The extracted string till 1st Non-Alphanumeric character: Sales18

Gunakan modul ungkapan biasa + Cari()

Modul

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.

Contoh

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}")

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

Gunakan modul Regex + Findall()

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

Berikut ialah 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

Gunakan kaedah Isalnum()

Dalam kaedah ini, kami akan mengulangi indeks setiap aksara dalam rentetan asal dan membina syarat untuk menyemak sama ada aksara pada indeks "

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

Berikut ialah 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

KESIMPULAN

Dalam artikel ini, kami membincangkan beberapa penyelesaian yang cekap dan dioptimumkan untuk mengekstrak subrentetan daripada rentetan apabila aksara bukan abjad angka pertama ditemui. Kami memahami penyelesaian mudah dan kasar serta penyelesaian lanjutan dan dioptimumkan. Kami menggunakan modul ungkapan biasa dan menggunakan fungsi "

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam