Neues Problem mit RegExp...

Haruka

Mitglied
Morgen Leute!

Ich hab nen RegExp gebastelt, den ich auch 2fach validiert bekommen hab. Einmal von dem RegExCoach und einmal von dem RegExpTester-Plugin für Eclipse...

Nur Java selbst stellt sich quer zuzugeben, dass mein RegExp im String vorkommt...

Source:
Code:
        Pattern p = Pattern.compile("\\{test:([\\w]*)\\}");
        Matcher m = p.matcher(content);
        System.out.println(content);
        System.out.println(p.toString());
        System.out.println(m.toString());
        if (m.matches()) {
          System.out.println("yuhu...");
        }
        else {
          System.out.println("moep");
        }
        System.out.println(Pattern.matches("\\{test:([\\w]*)\\}", content));

Consolenausgabe:
Code:
das ist ein test mit {test:mir} :)
\{test:([\w]*)\}
java.util.regex.Matcher[pattern=\{test:([\w]*)\} region=0,34 lastmatch=]
moep
false

Überseh ich was grundlegendes oder will Java mich einfach nur wieder ärgern?

(JDK: 1.0.5_04)
 
Hallo!

Schau mal hier:
Code:
 package de.tutorials;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 public class RegexExample {
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		String content = "das ist ein test mit {test:mir} :)";
 		String regex = "test:([\\w]*)";
 		Pattern pattern = Pattern.compile(regex);
 		Matcher matcher = pattern.matcher(content);
 		if(matcher.find()){
 			System.out.println(matcher.group(1));
 		}
 	}
 }

Ausgabe:
mir

Gruß Tom
 
Danke, aber habs grad auch endlich geknackt. ^^

Allerdings nen bissel anders, denn ohne die .* bekomm ich ne Endlosschleife.

Code:
        Pattern p = Pattern.compile(".*\\{test:([\\w\\säöüßÄÖÜ]*)\\}.*");
        Matcher m = p.matcher(content);
 
Zurück