Java Eğitimleri

Java ANA SAYFA Java'ya Giriş Java Başlarken Java Sözdizimi Java Yorumları Java Değişkenleri Java Veri Türleri Java Tipi Döküm Java Operatörleri Java Dizeleri Java Matematiği Java Booleanları Java Eğer... Başka Java Anahtarı Java while Döngüsü Döngü için Java Java Ara/Devam Java Dizileri

Java Yöntemleri

Java Yöntemleri Java Yöntemi Parametreleri Java Yöntemi Aşırı Yüklemesi Java Kapsamı Java Özyineleme

Java Sınıfları

Java OOP'si Java Sınıfları/Nesneleri Java Sınıfı Nitelikleri Java Sınıfı Yöntemleri Java Oluşturucuları Java Değiştiriciler Java Kapsülleme Java Paketleri / API Java Kalıtımı Java Polimorfizmi Java İç Sınıfları Java Soyutlama Java Arayüzü Java Numaraları Java Kullanıcı Girişi Java Tarihi Java Dizi Listesi Java Bağlantılı Listesi Java Hash Haritası Java HashSeti Java Yineleyici Java Sarıcı Sınıfları Java İstisnaları Java Normal İfadesi Java Konuları Java Lambda

Java Dosya İşleme

Java Dosyaları Java Dosyaları Oluşturma/Yazma Java Okuma Dosyaları Java Dosyaları Sil

Java Nasıl Yapılır

İki Sayı Ekle

Java Referansı

Java Anahtar Kelimeleri Java Dize Yöntemleri Java Matematik Yöntemleri

Java Örnekleri

Java Örnekleri Java Derleyici Java Alıştırmaları Java Testi Java Sertifikası


Java Normal İfadeleri


Normal İfade nedir?

Normal ifade, bir arama kalıbı oluşturan bir dizi karakterdir. Bir metinde veri aradığınızda, aradığınız şeyi açıklamak için bu arama modelini kullanabilirsiniz.

Normal ifade, tek bir karakter veya daha karmaşık bir kalıp olabilir.

Normal ifadeler, her tür metin arama ve metin değiştirme işlemlerini gerçekleştirmek için kullanılabilir.

Java'nın yerleşik bir Normal İfade sınıfı yoktur, ancak java.util.regex paketi normal ifadelerle çalışacak şekilde içe aktarabiliriz. Paket aşağıdaki sınıfları içerir:

  • PatternSınıf - Bir kalıp tanımlar (aramada kullanılacak)
  • MatcherSınıf - Kalıbı aramak için kullanılır
  • PatternSyntaxExceptionSınıf - Normal ifade modelinde sözdizimi hatasını gösterir

Örnek

Bir cümlede "w3schools" kelimesinin herhangi bir tekrarı olup olmadığını öğrenin:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
  public static void main(String[] args) {
    Pattern pattern = Pattern.compile("w3schools", Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher("Visit W3Schools!");
    boolean matchFound = matcher.find();
    if(matchFound) {
      System.out.println("Match found");
    } else {
      System.out.println("Match not found");
    }
  }
}
// Outputs Match found

Örnek Açıklama

Bu örnekte, "w3schools" kelimesi bir cümle içinde aranmaktadır.

Pattern.compile()İlk olarak, yöntem kullanılarak desen oluşturulur . İlk parametre, hangi kalıbın arandığını belirtir ve ikinci parametrede, aramanın büyük/küçük harfe duyarlı olmaması gerektiğini belirten bir bayrak bulunur. İkinci parametre isteğe bağlıdır.

Yöntem matcher(), bir dizgedeki deseni aramak için kullanılır. Gerçekleştirilen arama hakkında bilgi içeren bir Matcher nesnesi döndürür.

Yöntem find(), dizgede desen bulunursa true, bulunamadıysa false döndürür.



Bayraklar

Yöntemdeki bayraklar compile(), aramanın nasıl yapıldığını değiştirir. İşte bunlardan birkaçı:

  • Pattern.CASE_INSENSITIVE- Bir arama yapılırken harfler göz ardı edilecektir.
  • Pattern.LITERAL- Desendeki özel karakterlerin özel bir anlamı olmayacak ve arama yapılırken sıradan karakterler olarak kabul edilecektir.
  • Pattern.UNICODE_CASECASE_INSENSITIVE- İngiliz alfabesinin dışındaki harfleri de görmezden gelmek için bayrakla birlikte kullanın

Normal İfade Kalıpları

Yöntemin ilk parametresi Pattern.compile()kalıptır. Ne arandığını açıklar.

Parantezler bir dizi karakter bulmak için kullanılır:

Expression Description
[abc] Find one character from the options between the brackets
[^abc] Find one character NOT between the brackets
[0-9] Find one character from the range 0 to 9

meta karakterler

Meta karakterler, özel bir anlamı olan karakterlerdir:

Metacharacter Description
| Find a match for any one of the patterns separated by | as in: cat|dog|fish
. Find just one instance of any character
^ Finds a match as the beginning of a string as in: ^Hello
$ Finds a match at the end of the string as in: World$
\d Find a digit
\s Find a whitespace character
\b Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b
\uxxxx Find the Unicode character specified by the hexadecimal number xxxx

niceleyiciler

Niceleyiciler miktarları tanımlar:

Quantifier Description
n+ Matches any string that contains at least one n
n* Matches any string that contains zero or more occurrences of n
n? Matches any string that contains zero or one occurrences of n
n{x} Matches any string that contains a sequence of X n's
n{x,y} Matches any string that contains a sequence of X to Y n's
n{x,} Matches any string that contains a sequence of at least X n's

Not: İfadenizin özel karakterlerden birini araması gerekiyorsa, onlardan kaçmak için ters eğik çizgi ( \ ) kullanabilirsiniz. Java'da, dizelerdeki ters eğik çizgilerin kendilerinin kaçması gerekir, bu nedenle özel karakterlerden kaçmak için iki ters eğik çizgi gerekir. Örneğin, bir veya daha fazla soru işareti aramak için şu ifadeyi kullanabilirsiniz: "\\?"