2016-05-26 12 views
-3

Ich versuche Worte mit der folgenden Struktur zu entsprechen:Regex für Groß- und Kleinschreibung und Bedingungen für die passenden

Rufname, oder Rufname; , die, mit vorangestelltem "Anruf" und ein Leerzeichen ist

Und

NAME (was auch immer; das ist, NAME + Leerzeichen + ( und das gleiche gilt für das untere Gehäuse

ich gelernt (? ..? für Fall Unempfindlichkeit) Wie die komplette regex wäre

+4

Bitte geben Sie einige Beispieltexte mit erwarteten Ergebnisse. Außerdem meintest du '(? I)', nicht wahr? Hast du schon einen Code ausprobiert? –

+0

"NAME" sollte nicht übereinstimmen, aber "NAME anrufen" und "Rufname". Außerdem sollten "NAME (blablabla" und "name (blablabla") auch – Hans

+0

entsprechen, aber CALL name sollte nicht stimmen? –

Antwort

0

Dies funktioniert der Trick:

Pattern pattern = Pattern.compile("(?:call (?i)name)|(?:(?i)name \\(.*)"); 

System.out.println(pattern.matcher("call NAME").matches()); 
System.out.println(pattern.matcher("call name").matches()); 
System.out.println(pattern.matcher("CALL name").matches()); 
System.out.println(pattern.matcher("NAME (blablabla").matches()); 
System.out.println(pattern.matcher("name (blablabla").matches()); 

Ausgang:

true 
true 
false 
true 
true 
+0

Wer auch immer unten gewählt hat, sei ein großer Junge, sag mir, warum du gewählt hast? –

Verwandte Themen