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; |
Dengan “for loop”:
while (<>) { |
Atau dengan match yang overlapping
while (<>) { |
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
21 October 2008 at 1:07 pm
bisa minta tolong referensi untuk content based method…
untuk pencocokan dokumen formatnya .text
kalo pake regex gmana?