2017-12-15 5 views

Antwort

1

Zuerst müssen wir das Kontrollkästchen Regex im aktivieren finden & ersetzen bar, wenn sie nur die aktuelle Datei oder im Ersetzen in Pfad Dialog für das gesamte Projekt auswirken sollte:

enter image description here

diesen regulären Ausdruck mit 3 einfangenden Gruppen in den Textfeld finden sollte funktionieren:

@BindView\((.*)\) internal lateinit var (.*): (.*) 

Jetzt können wir die Variablen $1 für $ ResId, $2 für $ Field und $3 für $ Klasse im ersetzen Textfeld verwenden:

private val $2 by bindView<$3>($1) 
+0

Könnten Sie Klammern Logik klären? Warum. * Steht in Klammern (. *)? – DmitryBorodin

+0

Mit dem regulären Ausdruck '' foo. * Bar'' können Sie einfach überprüfen, ob eine Eingabe übereinstimmt oder nicht, aber Sie können keine Werte aus der Eingabe extrahieren. Wenn Sie einen regulären Ausdruck zuordnen und daraus Werte extrahieren möchten, müssen Sie Erfassungsgruppen verwenden, die \t mit eckigen Klammern angeben. Wenn also der reguläre Ausdruck '' foo (. *) Bar'' mit der Eingabe übereinstimmt, können Sie auch den Wert zwischen foo und bar extrahieren. Die einfangenden Gruppen werden nach ihrer Häufigkeitsreihenfolge beginnend mit 1 nummeriert. $ 0 ist die ganze Zeichenfolge, wenn die Eingabe übereinstimmt. – Marcel