Dan pada kali ini kita akan membuat code yang akan beroutput email saja dari sebuah string seperti contoh diatas.
![]() |
Email Extractor sederhana |
Sebelum kita memulai projek sederhana ini, disini saya menggunakan Python versi 3.x. Kenapa gak versi lengkap mas ? Python3 kan banyak versi, bahkan terbarunya Python versi 3.6
Baca Juga : Mengenal Syntax Baru Python 3.6
Ya saya mohon maaf, saya tidak coding Python di Laptop atau Komputer, saya hanya Coding dari Handphone Android saya saja. Saya disini menggunakan Qpython 3 di android, silahkan cari di Playstore ada kok.
Ok sebelum kita mulai, mari kita kenali terlebih dahulu format email pada umumnya. Disini saya mencontohkan email saya yaitu iqbal19600@gmail.com, nah itu kan kalau pakai jasa semacam Gmail atau Yahoo. Kalau self email, kurang lebih sama lah, misal info-shop@otakkeren.com.
Jadi kalau kita perhatikan, struktur umum email itu terbagi 3 yaitu :
- Nama pengguna
- Nama instansi / penyedia email beserta tanda '@'
- Domain
Nah masing masing bagian tersebut akan kita buat dan implementasinya dalam Python menggunakan module regex atau biasa dikenal Regular Expressions.
1 : Nama pengguna : Yang namanya nama pengguna pasti lah suka-suka pengguna, mereka kadang nambah word character kaya (.) dot , (-) strip, atau garis bawah ( _ ).
Oleh karena itu codenya adalah
([\w\.-_]+)
Maksud code diatas adalah kita membuat group, yang isinya class yang didalamnya terdapat kemungkinan word character dan berbagai character yang biasanya ada pada nama pengguna yaitu dot, strip dan underscore. Di tambah Metacharacter "+" sebagai tanda pemastian bahwa salah satu elemen class muncul sedikitnya 1 kali.
Oh ya kenapa dot diawali backslash, gak kaya character strip / underscore yang langsung tulis. sebenarnya dot dalam regex berarti mencocokkan character apa saja, jadi biar sifat regexnya gak keluar dan jadi character biasa ditambahkanlah awalan backslash "\"
2 : Nama Instansi / penyedia jasa email : Nama instansi / penyedia layanan email ini codenya mirip seperti code nama pengguna, hanya saja pada kenyatannya nama instansi / penyedia email berawalan tanda "@". Inilah codenya
@([\w\.-_]+)
Kenapa "@" diletakkan diluar grup dan class ? karena ini sudah harus pasti dan ada sebelum bagian kedua ini muncul, jadi tidak ada opsi kemungkinan untuk "@" ini, dia harus selalu muncul.
3 : Domain : Pada umumnya domain untuk email adalah .com, anggap saja begitu karena ini hanyalah simple tutorial, yang tidak akan membingungkan anda. ok
langsung saja ini codenya, masih mirip dengan code atasnya.
(\.[\w\.-_])
Code ini hanyalah meambahkan "\." pada awalan class. ini untuk memastikan bahwa sebelum ada tanda dot(.) maka bagian domain tidak terscan dahulu.
Tahap akhirnya adalah kita rangkai semua codenya menjadi satu tubuh, so, GPL lagi
Oleh karena itu codenya adalah
([\w\.-_]+)
Maksud code diatas adalah kita membuat group, yang isinya class yang didalamnya terdapat kemungkinan word character dan berbagai character yang biasanya ada pada nama pengguna yaitu dot, strip dan underscore. Di tambah Metacharacter "+" sebagai tanda pemastian bahwa salah satu elemen class muncul sedikitnya 1 kali.
Oh ya kenapa dot diawali backslash, gak kaya character strip / underscore yang langsung tulis. sebenarnya dot dalam regex berarti mencocokkan character apa saja, jadi biar sifat regexnya gak keluar dan jadi character biasa ditambahkanlah awalan backslash "\"
2 : Nama Instansi / penyedia jasa email : Nama instansi / penyedia layanan email ini codenya mirip seperti code nama pengguna, hanya saja pada kenyatannya nama instansi / penyedia email berawalan tanda "@". Inilah codenya
@([\w\.-_]+)
Kenapa "@" diletakkan diluar grup dan class ? karena ini sudah harus pasti dan ada sebelum bagian kedua ini muncul, jadi tidak ada opsi kemungkinan untuk "@" ini, dia harus selalu muncul.
3 : Domain : Pada umumnya domain untuk email adalah .com, anggap saja begitu karena ini hanyalah simple tutorial, yang tidak akan membingungkan anda. ok
langsung saja ini codenya, masih mirip dengan code atasnya.
(\.[\w\.-_])
Code ini hanyalah meambahkan "\." pada awalan class. ini untuk memastikan bahwa sebelum ada tanda dot(.) maka bagian domain tidak terscan dahulu.
Tahap akhirnya adalah kita rangkai semua codenya menjadi satu tubuh, so, GPL lagi
import re
pola = r"([\w\.-_]+)@([\w\.-_]+)(\.[\w\.-_]+) "
email = "Silahkan kirim kritik dan saran anda pada kami di iqbal19600@gmail.com"
extract = re.search(pola, email)
if extract :
print(extract.group())
pola = r"([\w\.-_]+)@([\w\.-_]+)(\.[\w\.-_]+) "
email = "Silahkan kirim kritik dan saran anda pada kami di iqbal19600@gmail.com"
extract = re.search(pola, email)
if extract :
print(extract.group())
Baiklah, ini adalah tutor pertama saya, silahlan email saya jika anda ingin request, code python apa lagi yang akan saya build dan share disini. Terima kasih sudah menyimak sampai habis, ada pertanyaan, silahkan tinggalkan di komentar bawah. Sampai jumpa di next artikel.
Visitor baik, selalu tinggalkan jejak.
Silahkan komen yang relevan & tidak berlebihan, tidak berbau SARA & Pornografi, tidak mengandung promosi.
^ _ ^ Happy Blogging !