Einem richtigen Matcher den folgend wäre (.):
Pattern IP_PATTERN = Pattern.compile("192\\.168\\.(\\d{1,3})\\.33");
Auf diese Weise würden Sie nur Zahlen in dort und nicht Buchstaben zum Beispiel übereinstimmen. Gemäß weiteren Anwendungsfällen, sollen Sie Ihre Nummer Matcher verfeinern, um sicherzustellen, sie paßt nur im Bereich 0-255
:
String IP_PATTERN_PART = "(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]?)";
Pattern IP_PATTERN = Pattern.compile("192\\.168\\.("+IP_PATTERN_PART+")\\.33");
Auch, wenn Sie sicher sind, dass Sie nie etwas anderes als eine IP bekommen (was bedeutet, keine umschließende Text), möchten Sie die Start- und End-Trennzeichen verwenden:
Pattern IP_PATTERN = Pattern.compile("^192\\.168\\.(\\d{1,3})\\.33$");
Dann, sobald Sie, welches Muster sich entschieden haben, zu verwenden, müssen Sie es auf diese Weise nutzen:
Matcher matcher = IP_PATTERN.matcher(candidate);
String otherIP = null;
if (matcher.matches()) {
matcher.find();
otherIP = matcher.group(1);
}
Was bedeutet 'Es funktioniert nicht? – Jens
Muster passt nicht. Entschuldigung für mein schlechtes Englisch –
Was ist die erwartete Ausgabe? – Jens