Gibt es eine Möglichkeit, mithilfe eines Sonderzeichens Zeichen zu finden und zu ersetzen, mit denen Zeichen an ihrer Stelle angezeigt werden können?
Damit meine ich sagen, ich habe den folgenden Text:
setI0100(mds3a1.getI0100().toString());
setI0200(mds3a1.getI0200().toString());
setI0300(mds3a1.getI0300().toString());
setI0400(mds3a1.getI0400().toString());
setI0500(mds3a1.getI0500().toString());
setI0600(mds3a1.getI0600().toString());
setI0700(mds3a1.getI0700().toString());
setI0800(mds3a1.getI0800().toString());
setI0900(mds3a1.getI0900().toString());
setI1100(mds3a1.getI1100().toString());
setI1200(mds3a1.getI1200().toString());
setI1300(mds3a1.getI1300().toString());
und ich wollte ersetzen mit etwas wie (mds3a1.getI *** (). toString ()); Ersetzen des Endes aller obigen Zeilen nach dem Anfangsbuchstaben (.
Wobei * einem beliebigen Zeichen entsprechen kann. Gestatten Sie mir, die Endungen aller obigen Zeilen zu ersetzen, obwohl sie nicht unbedingt alle gleich sind. Eine Zeile würde so aussehen:
Before:
setI0100(mds3a1.getI0100().toString());
After:
setI0100
Ich habe ähnliche Funktionen in anderen Programmen gesehen, bin mir jedoch nicht sicher, wie dieses Verhalten lauten soll.
EDIT: Am Ende habe ich nach regulären Ausdrücken gesucht, wie @DavidPostill unten zeigt.
Um das zu tun, was ich wollte, ergab sich Folgendes:
find: (\(mds3a1.getJ)....+(().toString\(\)\);)
replace:
das würde mich mit dem Text jeder Zeile bis und ohne die erste verlassen (
Für alle, die Regex mit großartigem Text verwenden möchten, ist dies eine gute Ressource, die ich gefunden habe. https://github.com/dmikalova/sublime-cheat-sheets/blob/master/cheat-sheets/Regular%20Expressions.cheatsheet
Antworten:
Es scheint, dass die MattDMo-Antwort nicht das richtige Muster für die gewünschten Ergebnisse ist. Folgendes habe ich für eine elegantere Lösung getan:
Öffnen Sie Sublime Text 2
Fügen Sie den Block ein:
Suchen> Ersetzen ( CTRL+ H)
Schaltfläche "Reguläre Ausdrücke aktivieren" ( Alt+ R)
Finde was:
\(.*
Ersetzen durch: [ Keine Zeichen hier ]
Klicken Sie auf Alle ersetzen
Erledigt
Das Ergebnis ist das, wonach Sie gefragt haben:
Regex-Aufschlüsselung:
\(
Kombiniere und entkomme dem(
Charakter..
Stimmt mit einem einzelnen Zeichen überein.*
Stimmt mit dem vorhergehenden Zeichen 0 oder mehrmals überein.quelle
Aktivieren Sie die Regex-Suche im Dialogfeld "Suchen" und verwenden Sie das folgende Muster:
Dies beginnt am Anfang der Zeile (
^
) und erfasst dann ein beliebiges Zeichen ((.*?)
) bis zum nicht erfassenden positiven Lookahead ((?=\()
).quelle
regex
. Machen Sie zuerst einen ehrlichen Versuch, und wenn Sie es vermasseln, stehen viele Leute bereit, um zu helfen. Stellen Sie sicher, dass Sie essublimetext
auch markieren , damit sie wissen, mit welchem Geschmack sie es zu tun haben.