Catatan: Examples provided are in Python.
Meskipun konsepnya tetap sama.
'.'
adalah simbol yang cocok yang cocok dengan karakter apa pun kecuali karakter baris baru (ini juga dapat diganti dengan re.DOTALL
argumen dengan Python). Karenanya ia juga disebut sebagai Wildcard .
'*'
adalah quantifier (mendefinisikan seberapa sering suatu elemen dapat terjadi). Adalah kependekan dari {0,} .
Ini berarti “cocok dengan nol atau lebih” - grup yang mendahului bintang dapat muncul beberapa kali dalam teks. Itu bisa sepenuhnya tidak ada atau diulang berulang kali.
'?'
juga merupakan penjumlah . Adalah kependekan dari {0,1} .
Ini berarti "Cocokkan nol atau salah satu grup sebelum tanda tanya ini." Itu juga dapat diartikan sebagai bagian sebelum tanda tanya adalah opsional .
misalnya:
pattern = re.compile(r'(\d{2}-)?\d{10}')
mobile1 = pattern.search('My number is 91-9999988888')
mobile1.group()
Output: '91-9999988888'
mobile2 = pattern.search('My number is 9999988888')
mobile2.group()
Output: '9999988888'
Dalam contoh di atas '?' menunjukkan bahwa dua digit sebelum itu adalah opsional. Mereka mungkin tidak terjadi atau terjadi paling banyak sekali.
Perbedaan antara '.' dan '?':
'.'
cocok / menerima / memverifikasi karakter tunggal untuk tempat yang dipegangnya dalam ekspresi reguler.
misalnya:
pattern = re.compile(r'.ot')
pattern.findall('dot will identify both hot and got.')
Output: ['dot', 'hot', 'got']
'?'
cocok / memverifikasi nol atau kemunculan tunggal grup sebelumnya .
Lihat contoh Nomor ponsel.
Sama halnya dengan '*'
. Ini akan memeriksa nol atau lebih kejadian grup sebelumnya .
Kombinasi:
'.*'
: Menerima sebanyak mungkin urutan yang tersedia. Pendekatan serakah .
'.*?
'Menerima urutan dan berhenti yang cocok pertama. Pendekatan Non-Serakah
Untuk info lebih lanjut, pertimbangkan membaca dua pertanyaan berikut ...