2016-03-25 14 views
-2

kullanarak java'da bir desenden dizeleri ayıkla Bu gibi bir Dize varsa "Error. LineNumber = 2, originalLine = 'ABC', lineErrors = [Özel karakter bulunamadı]",Matcher ve desen

ayıklamak istiyorum
  • '2' olarak satır numarası, 'ABC' olarak
  • originalLine ve

Ben regex çok yeniyim 'bulundu Özel karakter' olarak

  • hata, herhangi bir işaretçiler çok yararlı olacaktır . Birkaç geçmiş soruya göz attım ama istediğimi anlamadım.

  • +0

    Şimdiye kadar ne denediniz? –

    +0

    Desen kullanılarak deneniyor = "Ayrıştırma hatası. LineNumber = (\\ d +), originalLine = '[\\ w]', lineErrors = \\ [[\\ w] \\]", ancak sonucu almadım istemek. Doğru olup olmadığından emin değilim! –

    +0

    pattern = "Ayrıştırma hatası. .... Muhtemelen olmalıdır" Hata .... "Ayrıştırma hatası", örnek dizginizde yok "Hata. Satır ...." –

    cevap

    2

    Değerleri yakalamak için yakalama gruplarını kullanabilirsiniz. Bu, Java'daki örnek koddur. Bu, belirtilen dize için çalışır, ancak bunu değiştirip değiştirebilirsiniz.

    public class Main { 
    
    public static void main(String[] args) { 
    
        String s = "Error. LineNumber = 2, originalLine = 'ABC', lineErrors = [Special chars found]"; 
        String patternStr = "Error. LineNumber = ([\\S ]+), originalLine = ([\\S ]+), lineErrors = ([\\S ]+)"; 
        Pattern p = Pattern.compile(patternStr); 
        Matcher m = p.matcher(s); 
        if (m.find()) { 
         int count = m.groupCount(); 
         System.out.println("group count is " + count); 
         for (int i = 0; i < count; i++) { 
          System.out.println(m.group(i+1)); 
         } 
        } 
        } 
    }