2017-05-09 2 views
0

I String wie switchaubcsp-loafsyvgvhv die möglicherweise eine der folgenden Muster enthalten hat: s-loaf, p-loaf usw.Regex für ein Muster in einem String zu finden

Es folgt die Anforderung im Detail:

1st character - Any of [p,s,a,r,l], 
2nd character -> [-], Followed by Word [loaf]. 

Wenn in dem obigen Beispiel nach [p-loaf] gesucht wird, wurde der Text p-loaf gefunden, beginnend mit Index und endend bei Index mit java.util.regex.

Wie wird der reguläre Ausdruck für das Finden des ersten Zeichens Any of [p,s,a,r,l], 2nd character -> [-], Followed by Word [loaf] sein.

+3

Sie so ziemlich alles, was Sie brauchen, einschließlich der Zeichenklasse ** ** der akzeptierten Zeichen, und die Konstante, die folgt. Was hast du probiert? (statt nur zu erwarten, dass dir alles ausgehändigt wird) – AntonH

+0

@AntonH [psarl] [-] loaf –

Antwort

3

[psarl]-loaf wenn Sie das Wort mit ihm zu starten, fügen Sie ^ zu Beginn und wenn Sie das Wort Ende mit ihm wollen, fügen Sie $ bis zum Ende.

Sie können es versuchen, hier aus demo regex

+1

Ich denke, du bist in Gefahr, downvotes für ein "bitte schreibe meinen Code" zu geben; Nur für den Fall, dass Sie etwas bekommen und sich fragen warum. – Yunnosch

+0

@Bill F Danke .... Fertig schon. –

1
import java.util.regex.*; 
public class RegexExamples { 
    public static void main(String[] args) { 
     RegexTag("devicexyzas-loafcdbdd", "[psarl][-]loaf"); 

    } 

    public static void RegexTag(Stri`enter code here`ng Content, String PatternToMatch){ 
     Pattern pattern; 
     try { 
      pattern = Pattern.compile(PatternToMatch); 
     } 
     catch (PatternSyntaxException e) 
     { 
      System.err.println ("Regex syntax error: " + e.getMessage()); 
      System.err.println ("Error description: " + e.getDescription()); 
      System.err.println ("Error index: " + e.getIndex()); 
      System.err.println ("Erroneous pattern: " + e.getPattern()); 
      return; 
     } 

     Matcher matcher = pattern.matcher(Content); 

     System.out.println ("Regex = " + Content); 
     System.out.println ("Text = " + PatternToMatch); 
     System.out.println(); 

     while (matcher.find()) { 
      System.out.println("Found the text \"" + matcher.group() 
        + "\" starting at " + matcher.start() 
        + " index and ending at index " + matcher.end()); 
     } 
    } 
} 
Verwandte Themen