Archive for the ‘ Java’da Düzenli Ifadeler(Regular Expression Java Examples) ’ Category

package www.ethemsulan.com;
import java.util.regex.PatternSyntaxException;
import javax.swing.JOptionPane;
public class IpV4Kontrolu {
public static void main(String[] args) {
try {
String girilenIp=JOptionPane.showInputDialog("Bir IpV4 adresi girin");
if (girilenIp.matches("\\b(25[0-5]|2[0-4][0-9]" +
"|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?" +
"[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9]" +
"[0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b")){
JOptionPane.showMessageDialog(null, girilenIp+" dogru IpV4 adresi girildi");
} else {
JOptionPane.showMessageDialog(null, girilenIp+" yanlış IpV4 adresi girildi");
		} 
} catch (PatternSyntaxException ex) {
			ex.printStackTrace();
//127.0.0.1 dogru ipv4 localhost adresi
//299.299.299.299 yanlış 255 ten büyük olamaz.değerler her bir aralık
//255.255.255.256 yanlış max 255 olur.
//0:0:0:0:0:0:0:1 ipv6
//92.168.1.1 doğr ipv4 adresi
		}	}     }

Orj kod:http://www.ethemsulan.pastebin.com/yw9vp2iN

package www.ethemsulan.com;
import javax.swing.JOptionPane;
public class StringInt {
public static void main(String[] args) {
String kontrol=JOptionPane.showInputDialog("Bir sayi ya da string gir");
//girilen deger sayi yada string oldugunu bulur
 if(kontrol.matches("^\\d+$")){
System.out.println("Girilen deger sayidir-->"+kontrol);
   }else{
System.out.println("Girilen deger stringtir-->"+kontrol);
    }  }  }

Bu örnek ile aynı işlevi gerçekleştiren başka bir kod :http://www.ethemsulan.com/2010/01/girilen-degerin-say-ya-da-string.html bakın.Yanı düzenli ifadeler bir çok farklı şekilde yazılabilir.

 
package www.ethemsulan.com;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RakamLari {
public static void main(String[] args){
//rakamalri bulur.Bun tur orneklerin daha kisa yolu olabilir
    Pattern kal2=Pattern.compile("[0-9]");
Matcher esl2=kal2.matcher("21 Subat 2010 tarihinde yazildi");
    while(esl2.find()){
System.out.println("Rakamlar-->"+esl2.group());
    }    }  }

Eğer [0-9]+ yazarsak o zaman 21 ve 2010 u ayrı ayrı bulur.Ama bu şekilde 2,1,2,0,1,0 şeklinde yazar.+ bir ve birden fazla demek.

package www.ethemsulan.com;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexKullanimi {
public static void main(String[] args) {
//m ile biten ve E ile baslayan kelimeleri bulur.
Pattern kalip=Pattern.compile("E.+?m");
Matcher esl=kalip.matcher("Bu cumlede Ethem tek " +
        "eslesiyor.Evkarlandim bu gun salla");
      while (esl.find()) {
System.out.println("Eslesen-->"+esl.group());
        }    }    }

orj kod:http://www.ethemsulan.pastebin.com/f61c85875

package www.ethemsulan.com;
import java.util.regex.PatternSyntaxException;
import javax.swing.JOptionPane;
public class SayiKontrol {
public static void main(String[] args) {
  try {
String girilenDeger=JOptionPane.showInputDialog(
    "Tam sayi ya da string gir");
 if (girilenDeger.matches("(?simx)(?<!\\S)\\d++(?!\\S)")) {
   int tamsayi=Integer.parseInt(girilenDeger);
   System.out.println("Tam sayı girildi: "+tamsayi);
 } else {
   System.out.println("dize ya da char girildi:"+girilenDeger);
      } 
 } catch (PatternSyntaxException ex) {
      ex.printStackTrace();
    }  }  }

Orj kod:http://www.ethemsulan.pastebin.com/f222c383d

Eğer (?simx)(?<!\\S)\\d++(?!\\S) düzenli ifadesiyle kontrol yapmazsak direk parseInt() ile dönüştürürsek kullanıcı string girdiği anda hata verir.Bu ifadeyle matematikte bildiğimiz pozitrif tam sayıyı kontrol ediyor.Mesela 1,23,99 tam sayı, yanı if bloğu çalışır.Ama 12e, 17.34, –12, et bunları da dize ya da string kabul eder, yanı else bloğu çalışır.

package www.ethemsulan.com;
import javax.swing.JOptionPane;
public class EmailKontrol {
public static void main(String[] args) {
String email=JOptionPane.showInputDialog("E-mail adresinizi girin");
//(?simx)\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b
//girilend egerin email olup olmadigini kontrol ediyor
if (email.matches("(?simx)\\b[A-Z0-9._%+-]+" +
"@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b")) {
System.out.println(email+" email adresidir");
} else {
System.out.println(email+" email degil");
} 
}
}

Orj Kod:http://ethemsulan.pastebin.com/f11eb0376

package www.ethemsulan.com;
import java.util.regex.PatternSyntaxException;
import javax.swing.JOptionPane;
public class GirilenDegerSayimi {
public static void main(String[] args) {
String sayimi=JOptionPane.showInputDialog("Rakam ya da harf girin");
try {
if (sayimi.matches("(?<!\\S)\\d++(?!\\S)")) {
System.out.println("Girilen "+sayimi+" bir rakam ya da sayidir");
} else {
System.out.println(sayimi+" sayi degil bir kelime ya da harftir");
} 
} catch (PatternSyntaxException ex) {
ex.printStackTrace();
}
}
}

Orj Kod:http://ethemsulan.pastebin.com/f6b3d144f

Girilen değerin sayı ya da string olduğunu bulur.Düzenli ifadeler çok kullanışlıdır.Kod yazmaktan kurtarır.

package www.ethemsulan.com;
import javax.swing.JOptionPane;
public class TarihKontrol {
public static void main(String[] args) {
//tarih formatini kontrol eden duzenli ifadedir
String dateTarih=JOptionPane.showInputDialog(
"Tarih girin format yyy-aa-gg seklinde");
if (dateTarih.matches(
"\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])")) {
System.out.println("dogru");
} else {
System.out.println("yanlis");
} 
}
}

Orj Kod:http://ethemsulan.pastebin.com/f3f154fd9

4 rakamdan oluşan yil, iki rakamdan oluşan ay ve son ikisi de gün ve tanımlı oldukları aralığı kontrol eder.örneğin 2010-04-01 doğru. 2010-89-10 yanliş.

package www.ethemsulan.com;
import javax.swing.JOptionPane;
public class TimeSaatKontrol {
public static void main(String[] args) {
//saat ss:dd:ss veya ss:dd kontrol eder.
String dateTarih=JOptionPane.showInputDialog(
"Saat girin format ss:dd:ss ya da ss:dd seklinde");
if (dateTarih.matches(
"^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])" +
"(:([0-5]?[0-9]))?$"))
{
System.out.println("dgoru");
}else{
System.out.println("yanlis");
}
}
}

Orj Kod:http://ethemsulan.pastebin.com/f163ea78f

08:03:10 doğru 08:61:14 yanlış.61 bir dk yok.