Ich habe einen regulären Ausdruck:Regex matchin "java.util", aber nicht "java.util.Collections"
(abc|xyz|java\.util|)
Allerdings würde Ich mag java.util.Collections
ignorieren. Ich bin ratlos, wie das geht.
Ich habe einen regulären Ausdruck:Regex matchin "java.util", aber nicht "java.util.Collections"
(abc|xyz|java\.util|)
Allerdings würde Ich mag java.util.Collections
ignorieren. Ich bin ratlos, wie das geht.
es so einfach ist, wie keinen Punkt übereinstimmt, gefunden [^.]
Natürlich könnte es andere Lösungen sein das funktioniert besser für dich, abhängig von Dingen wie wenn das der ganze String ist, wenn ein Charakter garantiert danach kommt, usw. Wenn du mehr gibst Details kann ich genauer sein.
Zum Beispiel, wenn es eine Import-Anweisung ist, könnten Sie einfach ein Semikolon zuordnen, indem Sie ein literales Semikolon danach einfügen. Wenn Sie planen, das Bit unmittelbar danach zu verwenden, verwenden Sie einen negativen Lookahead: (?!\.)
Wenn der String nach dem util
endet, verankern Sie ihn mit $
am Ende.
Wenn Sie auf nurjava.util.Collections
scheitern wollen, aber etwas anderes akzeptieren, dann möchten Sie (?!\.Collections)
die spezifische negative Vorschau verwenden. Wenn Sie nur eine Sache erlauben möchten (zB Random
), können Sie in Ihrem aktuellen Regex (?:\.Random)?
sofort nach java.util
hinzufügen.
Danke, ich brauche das Bit danach, damit das negative Lookahead funktioniert! –
@poleapple Wenn meine Antwort geholfen hat, bitte upvote und/oder akzeptiere es :) –
Sie könnten das Ende der Zeile Zeichen verwenden
(abc|xyz|java\.util|)$
Oder negative look-ahead
(abc|xyz|java\.util|)$(?!\.)
Sie können eine negative Vorschau verwenden und einen regulären Ausdruck wie folgt verwenden:
java\.util(?!\.Collections)
So können Sie das Muster zu Ihrem regulären Ausdruck hinzuzufügen und haben:
(abc|xyz|java\.util(?!\.Collections)|)
negativer Lookahead: 'java \ .util (?! \. Collections)' – anubhava
@anubhava Danke, das war, was ich gesucht habe! –