Rumah > pembangunan bahagian belakang > Tutorial Python > Program Python untuk mencetak huruf pertama setiap perkataan menggunakan ungkapan biasa

Program Python untuk mencetak huruf pertama setiap perkataan menggunakan ungkapan biasa

PHPz
Lepaskan: 2023-09-04 17:01:09
ke hadapan
1305 orang telah melayarinya

Program Python untuk mencetak huruf pertama setiap perkataan menggunakan ungkapan biasa

Pustaka ekspresi biasa dalam Python untuk padanan corak dan manipulasi data teks. Kita boleh menggunakan ungkapan biasa untuk mencetak huruf pertama setiap perkataan dengan menggunakan ciri padanan coraknya untuk mengenal pasti perkataan baharu selepas ruang. Dalam artikel ini, kami akan melaksanakan program yang mencetak huruf pertama setiap perkataan menggunakan ungkapan biasa.

Ekspresi Biasa

Ekspresi biasa atau ungkapan biasa ialah alat untuk pemadanan corak dalam teks. Mereka ialah jujukan aksara yang mentakrifkan corak carian. Ia digunakan secara meluas dalam pengaturcaraan, terutamanya pemprosesan teks, dan disokong oleh kebanyakan bahasa pengaturcaraan, termasuk Python.

Cetak huruf pertama setiap perkataan menggunakan ungkapan biasa

Kaedah 1: Gunakan kaedah findall()

Untuk mencetak huruf pertama setiap perkataan menggunakan ungkapan biasa, kita perlu terlebih dahulu mengimport modul semula dan mencipta fungsi yang dipanggil first_letter yang mengambil rentetan sebagai parameter. Dalam fungsi first_letter, kami menggunakan kaedah re.findall() untuk mencari semua perkataan dalam rentetan. Corak ungkapan biasa 'bw' digunakan untuk mencari aksara pertama bagi setiap perkataan. 'b' ialah sempadan perkataan, yang sepadan dengan kedudukan antara watak perkataan dan watak bukan perkataan. 'w' sepadan dengan mana-mana aksara perkataan (huruf, nombor atau garis bawah).

Kaedah

re.findall() mengembalikan senarai semua aksara perkataan dalam rentetan. Kemudian kami menyertai senarai aksara menggunakan kaedah join().

Tatabahasa

re.findall(pattern, string, flags=0)
Salin selepas log masuk

Di sini, kaedah "findall()" mengembalikan semua padanan tidak bertindih bagi corak ungkapan biasa dalam rentetan. Kaedah ini mengambil tiga parameter: corak ungkapan biasa, rentetan untuk dicari dan bendera pilihan. Ia mengembalikan senarai semua perlawanan.

string.join(iterable)
Salin selepas log masuk

Di sini, kaedah "join()" menggabungkan elemen boleh lelar (cth. list, tuple, string) ke dalam satu rentetan, menggunakan rentetan yang ditentukan sebagai pemisah antara setiap elemen. Kaedah ini mengambil satu parameter: objek boleh lelar untuk digabungkan.

re.finditer(pattern, string, flags=0)
Salin selepas log masuk

Di sini, kaedah "finditer()" mengembalikan lelaran objek padanan untuk semua padanan tidak bertindih bagi corak ungkapan biasa dalam rentetan. Kaedah ini mengambil tiga parameter: corak ungkapan biasa, rentetan untuk dicari dan bendera pilihan. Ia mengembalikan lelaran objek padanan yang boleh digunakan untuk mengekstrak rentetan yang sepadan.

re.split(pattern, string, maxsplit=0, flags=0)
Salin selepas log masuk

Di sini, kaedah “split()” membahagikan rentetan kepada senarai subrentetan menggunakan corak ungkapan biasa sebagai pembatas. Kaedah ini mengambil empat parameter: corak ungkapan biasa, rentetan untuk dipecah, bilangan maksimum pemisahan (lalai ialah 0, menunjukkan semua pemisahan yang mungkin) dan bendera pilihan. Ia mengembalikan senarai subrentetan.

Contoh 1

Dalam contoh di bawah, kami mencipta rentetan "Python ialah bahasa pengaturcaraan yang popular" dan menyerahkannya kepada fungsi huruf_pertama. Fungsi itu kemudian mengembalikan huruf pertama setiap perkataan dan kemudian kita boleh menyertai aksara yang dikembalikan menggunakan kaedah join() dan mencetak output.

import re

def first_letter(string):
   words = re.findall(r'\b\w', string)
   return "".join(words)

string = "Python is a popular programming language"
result = first_letter(string)
print(result)
Salin selepas log masuk

Output

Piappl
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Contoh 2

Dalam contoh di bawah, kami mula-mula menggunakan kaedah "re.split()" untuk memisahkan rentetan kepada senarai perkataan menggunakan "W+" sebagai pembatas. 'W' sepadan dengan mana-mana aksara bukan perkataan, '+' menentukan satu atau lebih kejadian. Kami juga menambah penapis untuk mengalih keluar sebarang rentetan kosong daripada senarai. Seterusnya, kami menggunakan pemahaman senarai untuk mengekstrak aksara pertama setiap perkataan dan mengembalikannya sebagai senarai. Akhir sekali, kami menyertai senarai aksara kembali ke dalam rentetan menggunakan kaedah "str.join()".

import re

def first_letter(string):
   return ''.join([word[0] for word in re.split('\W+', string) if word])
    
string = "Python is a popular programming language"
result = first_letter(string)
print(result)
Salin selepas log masuk

Output

Piappl
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Contoh 3

Dalam contoh di bawah, kami menggunakan kaedah "re.finditer()" untuk mencari semua kemunculan corak ungkapan biasa "bw" dalam rentetan. Kami kemudian mengulangi setiap perlawanan dan menambahkan aksara pertama pada rentetan yang terhasil.

import re

def first_letter(string):
   result = ""
   for match in re.finditer(r'\b\w', string):
      result += match.group()
   return result

string = "Python is a popular programming language"
result = first_letter(string)
print(result)
Salin selepas log masuk

Output

Piappl
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Contoh 4

Dalam contoh di bawah, kami menggunakan kaedah "re.split()" untuk memisahkan rentetan kepada senarai perkataan dan pembatas. Corak ungkapan biasa "(W+)" sepadan dengan satu atau lebih kejadian mana-mana aksara bukan perkataan "W". Tanda kurung menangkap pembatas ke dalam item berasingan dalam senarai. Kami kemudian menggunakan pemahaman senarai untuk mengekstrak aksara pertama setiap perkataan dan mengembalikannya sebagai senarai. Akhir sekali, kami menyertai senarai aksara kembali ke dalam rentetan menggunakan kaedah "str.join()".

import re

def first_letter(string):
   return ''.join([word[0] for word in re.split(r'(\W+)', string) if word])

string = "Python is a popular programming language"
result = first_letter(string)
print(result)
Salin selepas log masuk

Output

P i a p p l
Salin selepas log masuk

Kesimpulan

Dalam artikel ini, kami membincangkan cara mencetak huruf pertama setiap perkataan menggunakan ungkapan biasa. Ungkapan biasa ialah alat yang berkuasa untuk padanan corak pada data teks. Untuk mencetak huruf pertama setiap perkataan, kami menggunakan kaedah re.findall() untuk mencari aksara pertama perkataan dalam rentetan dan kemudian bergabung dengan setiap aksara menggunakan fungsi join().

Atas ialah kandungan terperinci Program Python untuk mencetak huruf pertama setiap perkataan menggunakan ungkapan biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan