Contoh Python Regex

Contoh Python Regex



Bentuk regex penuh ialah Ungkapan Biasa. Ia adalah ciri penting mana-mana bahasa pengaturcaraan. Ia ialah corak rentetan yang digunakan untuk memadankan, mencari atau menggantikan rentetan dalam nilai rentetan. Corak regex boleh digunakan dalam skrip Python menggunakan modul 'semula' Python. Modul ini mempunyai banyak jenis fungsi untuk melakukan operasi rentetan yang berbeza. Metakarakter dan jujukan khas yang berbeza digunakan untuk menentukan corak regex untuk mencari atau menggantikan tugas. Tujuan menggunakan beberapa aksara meta yang biasa digunakan, urutan khas, dan kaedah regex dalam skrip Python ditunjukkan dalam tutorial ini.

Beberapa metakarakter yang biasa digunakan dalam regex:









Watak Tujuan
'+' Ia digunakan untuk memadankan satu atau lebih kejadian aksara tertentu dalam rentetan.
'*' Ia digunakan untuk memadankan sifar atau lebih kejadian bagi aksara tertentu dalam rentetan.
'?' Ia digunakan untuk memadankan sifar atau satu kejadian bagi aksara tertentu dalam rentetan.
'^' Ia digunakan untuk memadankan aksara atau rentetan tertentu pada permulaan rentetan.
'$' Ia digunakan untuk memadankan aksara atau rentetan tertentu di hujung rentetan.
'|' Ia digunakan untuk memadankan mana-mana rentetan berbilang dalam rentetan. Ia berfungsi seperti logik OR.
'[]' Ia digunakan untuk memadankan julat aksara.
'{}' Ia digunakan untuk memadankan bilangan aksara tertentu.



Beberapa jujukan khas yang biasa digunakan dalam regex:





Urutan Tujuan
‘\A’ Ia digunakan untuk memadankan watak tertentu pada permulaan rentetan. Ia berfungsi seperti watak '^'.
‘\b’, ‘\B’ '\b' digunakan untuk memadankan rentetan yang mengandungi aksara atau perkataan tertentu pada permulaan atau akhir rentetan. '\B' berfungsi bertentangan dengan '\b'.
‘\d’, ‘\D’ '\d' digunakan untuk memadankan nombor perpuluhan dalam rentetan yang serupa dengan '[0-9]'. '\D' berfungsi bertentangan dengan '\d'.
‘\s’, ‘\S’ '\s' digunakan untuk memadankan ruang putih dalam rentetan yang serupa dengan '[\n\t\r\v]'. '\S' berfungsi bertentangan dengan '\s'.
‘\w’, ‘\W’ “\w” digunakan untuk memadankan aksara abjad dan angka dalam rentetan. '\W' berfungsi bertentangan dengan '\w'.
'\WITH' Ia digunakan untuk memadankan watak tertentu di hujung rentetan. Ia berfungsi seperti watak '$'.

Contoh 1: Padankan Rentetan Menggunakan Fungsi Match().

Fungsi match() digunakan untuk memadankan corak regex pada permulaan rentetan. Sintaks fungsi ini diberikan seperti berikut:



Sintaks:

perlawanan semula ( corak, tali, bendera = 0 )

Di sini, hujah pertama digunakan untuk menentukan corak regex. Argumen kedua digunakan untuk menentukan rentetan utama. Argumen ketiga adalah pilihan dan digunakan untuk menentukan jenis bendera yang berbeza.

Cipta fail Python dengan skrip berikut yang sepadan dengan corak regex dengan rentetan yang ditentukan menggunakan fungsi match(). Pertama, corak regex yang ditentukan digunakan untuk dipadankan. Seterusnya, perkataan carian diambil daripada pengguna dan digunakan sebagai corak regex untuk dipadankan dengan nilai rentetan. Jika mana-mana padanan ditemui, perkataan carian akan dicetak. Jika tidak, rentetan 'Tiada nilai sepadan ditemui' dicetak.

#Import modul yang diperlukan
import semula

#Tentukan fungsi untuk mencetak hasil yang sepadan
def matchString ( ) :
#Semak nilai pulangan bagi fungsi match().
jika bersama dengan ! = Tiada:
cetak ( ''' + tikar.kumpulan ( ) + '' terdapat dalam '' + strValue + ''' )
lain:
cetak ( 'Tiada nilai yang sepadan ditemui.' )

#Tentukan nilai rentetan
strValue = 'Pertama masuk, pertama keluar.'
#Padankan rentetan berdasarkan corak
tikar = perlawanan semula ( '^Pertama' , strValue )
#Fungsi panggilan untuk mencetak keputusan perlawanan
matchString ( )

#Ambil rentetan carian
inValue = input ( 'Masukkan nilai carian: ' )
tikar = perlawanan semula ( inValue + , strValue )
#Fungsi panggilan untuk mencetak keputusan perlawanan
matchString ( )

Output berikut muncul untuk nilai input 'pertama':

Contoh 2: Cari Rentetan Menggunakan Fungsi Findall().

Fungsi findall() digunakan untuk mengembalikan semua perkataan sepadan yang terdapat dalam rentetan utama sebagai tuple.

Sintaks:

re.findall ( corak, tali, bendera = 0 )

Di sini, hujah pertama digunakan untuk menentukan corak regex. Argumen kedua digunakan untuk menentukan rentetan utama. Argumen ketiga adalah pilihan dan digunakan untuk menentukan jenis bendera yang berbeza.

Buat fail Python dengan skrip berikut yang mengambil nilai rentetan utama dan nilai rentetan carian daripada pengguna. Seterusnya, gunakan perkataan carian  dalam corak regex untuk mencari perkataan carian dalam rentetan utama. Bilangan jumlah padanan dicetak dalam output.

#Import modul yang diperlukan
import semula

#Ambil nilai rentetan
inValue = input ( 'Masukkan rentetan:' )

#Ambil perkataan carian
srcValue = input ( 'Masukkan perkataan carian: ' )

#Cari perkataan dalam rentetan
srcResult = re.findall ( srcValue + '\Dalam*' , inValue )
#Cetak hasil carian
cetak ( 'Perkataan itu '' + srcValue + '' terdapat dalam rentetan'
+ str ( sahaja ( srcResult ) ) + 'kali.' )

Mengikut output, perkataan carian 'makan' ditemui dua kali dalam rentetan utama 'Kami makan untuk hidup dan tidak hidup untuk makan'.

Contoh 3: Cari String Menggunakan Fungsi Carian().

Carian() ialah fungsi lain untuk mencari corak tertentu dalam nilai rentetan. Ia mengandungi hujah yang sama seperti fungsi match() dan findall(). Buat fail Python dengan skrip berikut yang mencari perkataan 'Python' dalam nilai rentetan yang akan diambil daripada pengguna. Jika perkataan carian wujud dalam nilai input, mesej kejayaan akan dicetak. Jika tidak, mesej kegagalan dicetak.

#Import semula modul
import semula

#Ambil nilai rentetan
inValue = input ( 'Masukkan rentetan:' )
#Cari perkataan tertentu dalam nilai rentetan
srcResult = re.search ( r 'Python\w*' , inValue )

#Semak perkataan carian ditemui atau tidak
jika srcResult:
cetak ( ''' + srcResult.group ( ) + '' terdapat dalam '' + inValue + ''' )
lain:
cetak ( 'Rentetan carian tidak ditemui.' )

Pengeluaran:

Output berikut muncul jika rentetan input ialah 'Saya suka pengaturcaraan Python':

Output berikut muncul jika rentetan input ialah 'Saya suka pengaturcaraan PHP':

Contoh 4: Gantikan Rentetan Menggunakan Fungsi Sub().

Fungsi sub() digunakan untuk mencari rentetan tertentu berdasarkan corak dan menggantikannya dengan perkataan lain. Sintaks fungsi ini diberikan seperti berikut:

Sintaks:

semula.sub ( corak, rentetan ganti, rentetan_utama )

Argumen pertama fungsi ini mengandungi corak yang digunakan untuk mencari rentetan tertentu dalam rentetan utama.

Argumen kedua fungsi ini mengandungi nilai rentetan 'ganti'.

Argumen ketiga fungsi ini mengandungi rentetan utama.

Fungsi ini mengembalikan rentetan yang diganti jika ada perkataan yang sepadan dalam rentetan utama berdasarkan hujah pertama.

Buat fail Python dengan skrip berikut yang mencari dua digit di hujung rentetan. Jika rentetan mengandungi dua digit pada penghujungnya, digit tersebut digantikan dengan rentetan '$50'.

#Import semula modul
import semula

#Tentukan rentetan utama
strValue = 'Harga buku ialah 70'

#Tentukan corak carian
corak = '[0-9]{2}'

#Tentukan nilai ganti
replaceValue = '$50'

#Cari dan gantikan rentetan berdasarkan corak
modified_strValue = re.sub ( corak, replaceValue, strValue )
#Cetak nilai rentetan asal dan diubah suai
cetak ( 'Rentetan asal:' + strValue )
cetak ( 'Rentetan yang diubah suai:' + modified_strValue )

Pengeluaran:

Terdapat 70 di hujung rentetan utama. Jadi, 70 digantikan dengan $50 dalam rentetan yang diganti.

Contoh 5: Gantikan Rentetan Menggunakan Fungsi Subn().

Fungsi subn() berfungsi seperti fungsi sub(), kecuali ia mengembalikan output sebagai tuple di mana indeks pertama mengandungi nilai yang diganti dan indeks kedua mengandungi jumlah padanan.

Buat fail Python dengan skrip berikut yang mencari abjad A hingga L dalam rentetan 'LinuxHint.com' menggunakan fungsi subn():

#Import semula modul
import semula

#Tentukan rentetan utama
strValue = 'LinuxHint.com'

#Tentukan corak carian
corak = '[KEPADA]'

#Tentukan nilai ganti
replaceValue = '*'

#Cari dan gantikan rentetan berdasarkan corak
modified_strValue = re.subn ( corak, replaceValue, strValue )
#Cetak rentetan asal dan output subn()
cetak ( 'Rentetan asal: \n ' + strValue )
cetak ( 'Keluaran fungsi subn(): ' )
cetak ( modified_strValue )

Pengeluaran:

Mengikut output berikut, aksara “L” dan “H” digantikan dengan aksara “*”.

Contoh 6: Pisahkan Rentetan Menggunakan Fungsi Split().

Buat fail Python dengan skrip berikut yang menggunakan fungsi split() untuk membahagikan rentetan utama kepada beberapa bahagian berdasarkan corak regex:

#Import semula modul
import semula

#Tentukan nilai rentetan
strVal= 'Rupa Akter;Nira Chowdhury;Mazharul Islam'
#Tentukan corak yang akan digunakan untuk memisahkan data
corak = '[^A-Za-z ]'
#Simpan nilai pecahan dalam senarai
split_result = re.split ( corak, strVal )
cetak ( 'Keluaran fungsi split():' )
cetak ( split_result )

Pengeluaran:

Mengikut output, rentetan utama dibahagikan kepada tiga bahagian berdasarkan corak “[^A-Za-z ]” yang digunakan dalam skrip.

Kesimpulan

Tujuan metakarakter, julat dan fungsi terbina dalam Python yang paling biasa digunakan untuk mencari, menggantikan dan memisahkan rentetan ditunjukkan dalam tutorial ini menggunakan skrip Python mudah.