/ / Wie erfasse ich Werte aus einem Regex? - Java, Regex

Wie erfasse ich Werte von einem Regex? - Java, Regex

Wie extrahieren Sie Werte aus einem regulären Ausdruck, in den ein Platzhalter von a umgeleitet werden kann $number_of_occurance value?

Zum Beispiel habe ich eine Zeichenfolge final_0.25Seg1-Frag1 und ich möchte alle Übereinstimmungen dieser Zeichenfolge in einer Datei mit finden 0.25 als Wildcard, die ich verwenden kann

Pattern regex = Pattern.compile( "/vod/final_\d+\.\d+Seg1-Frag1" );
Matcher regexMatcher = regex.matcher(data2[0]);

Ich möchte den Wert des Wertes in behalten \d+\.\d und finden Sie heraus, welche der übereinstimmenden Zeilen an dieser Position den größten Wert hat.

Antworten:

2 für die Antwort № 1

Hast Du Dir angesehen Mustergruppes? Sie können durchlaufen, um übereinstimmende Unterausdrücke zu identifizieren.

Aus dem verlinkten Beispiel. MatcherGruppe(0) ist der vollständige Ausdruck.

CharSequence inputStr = "abbabcd"; // could be a String type
String patternStr = "(a(b*))+(c*)";

// Compile and use regular expression
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.find();

if (matchFound) {
// Get all groups for this match
for (int i=0; i<=matcher.groupCount(); i++) {
String groupStr = matcher.group(i);
}
}

0 für die Antwort № 2

Bitte geben Sie ein Beispiel. Ich denke, Sie müssen die Dokumente von Mathcer lesen http://docs.oracle.com/javase/7/docs/api/index.html?java/util/regex/Matcher.html. Über können Sie auf Gruppen zugreifen group Methode.