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 № 1Hast 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.