Hitung hasil pencarian regex (perl,php,unix,java)

Counting string tertentu dalam text gampang-gampang susah. Dulu saya sering menggunakan kombinasi program-program GNU seperti grep,awk. Sekarang saya lebih suka perl. Untuk aplikasi web, php atau java. Berikut teknik yang saya pakai dalam mengimplementasikan counting string hasil regex dalam berbagai platform tsb.

Perl

Perl mungkin tools pertama yang akan terbetik dalam benak saya untuk urusan-urusan regex seperti ini. Karena mungkin ia telah menemani saya paling lama dalam urusan ini. Meskipun perl bukan tools pertama yang pernah saya gunakan, tapi ia telah menemani saya dalam kesempatan terbanyak dibandingkan tool-tool lainnya.
Dengan “while loop”:


$count = 0;
while (<>) {
$count++ while $_ =~ /PAT/g;
}

Dengan “for loop”:

while (<>) {
for ($count = 0; $_ =~ /PAT/g; $count++) { }
}

Atau dengan match yang overlapping

while (<>) {
$count++ while $_ =~ /(?=PAT)/g;
}

GNU/Unix AWK

Berikut adalah contoh kita menghitung kemunculan string “line” dengan awk pada console unix.

$ printf "line one\nline two\nline three" | awk ‘/line/ { ++x } END { print x }'

GNU/Unix grep + tr + wc

Grep mungkin tools pertama yang pernah saya
pakai untuk regex. Hasil jumlah baris ditemukannya string oleh grep dihitung dengan wc. Grep memproses dalam satuan baris, maksudnya bila ada dua atau lebih string yang dicari dalam satu baris, maka grep outputnya 1 baris. Oleh karena itu kita perlu bantuan tr, program transpose. Kita transpose (gantikan) dulu setiap spasi dengan ‘\n’ ganti baris, baru kita hitung jumlah barisnya dengan wc.

$ tr " " "\n" < inputfile | grep "PAT" | wc -l

atau tanpa wc pun bisa, yaitu dengan memasukkan option -c (count , jumlah baris) dan -i (ignore case, tidak peduli besar/kecil huruf)

$ tr " " "\n" < inputfile | grep -ic "PAT"

PHP dan Java
Platform ini mungkin platform yang paling menarik, sebab pemakai PHP dan Java semakin lama memang semakin meningkat seiring dengan semakin banyaknya aplikasi web tumbuh. Pada prinsipnya PHP dan Java mengadopsi regex Perl. Untuk PHP dengan fungsi preg_match dan untuk Java dengan library java.util.regex

Advertisement

  1. ari

    bisa minta tolong referensi untuk content based method…
    untuk pencocokan dokumen formatnya .text
    kalo pake regex gmana?




Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s



Follow

Get every new post delivered to your Inbox.