Ich brauche zwei verschiedene reguläre Ausdrücke für die unten genannten Zeichenfolge Werte;Regex für Java-String, um zwischen zwei verschiedenen Strings mit dynamischen Zeichen zu unterscheiden
Quelle Text 1: user.tag.<TAG>.<TAGVALUE>
Quelle Text 2: user.tag.<TAG>
Ein einfacher regulärer Ausdruck sollte eindeutig die beiden oben genannten Strings identifizieren. Aber es sollte keine Überschneidungen geben. Der Wert zwischen <>
ist dynamisch. Die dynamischen Werte können alles sein (einschließlich Leerzeichen) außer .
Zeichen.
Allerdings habe ich die folgenden regex Bedingungen
RegEx für String 1: (\Quser.tag\E)\.(\w+)\.(\w+)(.*)
RegEx für String 2: (\Quser.tag\E)\.(\w+)\.(.*)
Die Regex für String 2
wird auch für die first source string
entsprechen. Ich möchte nicht, dass das passiert und ich möchte, dass sie einzigartig sind.
Vielleicht '^ (\\ Quser.tag \\ E) [.] <(\\w+)> $'? und '^ (\\ Quser.tag \\ E) [.] <(\\w+)> [.] <(\w+)> $'? –
Ja, diese '.' sollten auf jeden Fall mit – Aaron
auskommentieren. Seien Sie vorsichtig mit Ihren' .' Zeichen. Sie müssen ihnen als '\.' Entkommen, wenn Sie ein Literal '. Warum haben Sie auch das '(. *)' Am Ende Ihrer Regexes? Dadurch wird "alles" gefunden, was die Ursache für die unerwünschte Übereinstimmung ist. Bitte geben Sie Textproben an und wie sie übereinstimmen sollten (oder nicht sollten). – Lucero