Ich versuche, Großbuchstaben mit entsprechenden Kleinbuchstaben durch Regex zu ersetzen ..__
EarTH: 1,
MerCury: 0.2408467,
venuS: 0.61519726,
wird
earth: 1,
mercury: 0.2408467,
venus: 0.61519726,
in erhabenem Text. Wie kann ich Buchstaben nur in Wörtern verwenden, die sowohl Klein- als auch Großbuchstaben enthalten? Damit betrifft es venUs
und nicht VENUS
.
Du darfst:
Suchen: (\w)
Ersetzen durch: \L$1
Oder wählen Sie den Text aus, ctrl+K+L.
Ich dachte mir, dass dies auch für andere nützlich sein könnte:
finden:
([A-Z])(.*)
ersetzen:
\L$1$2
-> konvertiert alle Buchstaben in $1
und $2
in Kleinbuchstaben\l$1$2
-> konvertiert nur den ersten Buchstaben von $1
in Kleinbuchstaben und lässt alles andere unverändertDasselbe gilt für Großbuchstaben mit \U
und \u
.
Bevor Sie mit regulären Ausdrücken wie [A-Z]
suchen, sollten Sie die case sensitive Taste drücken (oder Alt+C) (als leemour freundlich vorgeschlagen in der akzeptierten Antwort bearbeitet werden). Um es klar zu machen, lasse ich ein paar andere Beispiele:
(\s)([a-z])
(\s
stimmt auch mit neuen Zeilen überein, d. H. "VenuS" => "VenuS")$1\u$2
(\s)([A-Z])
$1\l$2
([a-z])([A-Z])
$1\l$2
(\w)([A-Z]+)
$1\L$2
\L$0
(\w)([A-Z]+)
$1\U$2
(\w+)([A-Z])
\U$1$2
(\w+)([A-Z])
\L$1$2
([A-Z])(\w+)
$1\U$2
([A-Z])(\w+)
$1\L$2
([a-z\s])([A-Z])(\w)
$1\l$2\u$3
(\w)([A-Z])([a-z\s])
\u$1\l$2$3
In Bezug auf die Frage (passen Sie Wörter mit mindestens einem Groß- und einem Kleinbuchstaben an und machen Sie sie zu Kleinbuchstaben) Leemours Kommentar-Antwort ist die richtige Antwort . Nur um zu verdeutlichen, ob es nur eine zu ersetzende Gruppe gibt, können Sie in den inneren Gruppen einfach ?:
verwenden (d. H. nicht erfasste Gruppen ) oder das Erstellen überhaupt vermeiden:
((?:[a-z][A-Z]+)|(?:[A-Z]+[a-z]))
OR ([a-z][A-Z]+|[A-Z]+[a-z])
\L$1
Tyler schlug durch Bearbeiten dieser Antwort einen alternativen Suchausdruck für # 4 vor:
(\B)([A-Z]+)
Gemäß Dokumentation sucht \B
nach einem Zeichen, das sich nicht an der Wortgrenze befindet (d. H. Nicht am Anfang und nicht am Ende). Sie können die Schaltfläche Alle ersetzen verwenden, und dies funktioniert genauso, als hätten Sie (\w)([A-Z]+)
als Suchausdruck.
Der Nachteil von \B
ist jedoch, dass es keine einzelnen Ersetzungen zulässt, möglicherweise aufgrund der Einschränkung find "nicht begrenzt" (bitte bearbeiten Sie diese, wenn Sie den genauen Grund kennen ).
Regulären Ausdruck
Finde : \w+
Ersetzen Sie : \L$0
Sublime Text verwendet die Perl-kompatiblen regulären Ausdrücke (PCRE) Engine aus der Boost-Bibliothek, um reguläre Ausdrücke in der Suche zu aktivieren Platten.
\L
Wandelt alles in Kleinbuchstaben um
$0
Gruppen erfassen
Versuche dies
([A-Z])([A-Z]+)\b
$1\L$2
Stellen Sie sicher, dass die Groß-/Kleinschreibung aktiviert ist (Alt + C)
In BBEdit funktioniert das (zB: die ID-Werte in Kleinbuchstaben ändern):
Suchen Sie nach einem beliebigen Wert: <a id="(?P<x>.*?)"></a>
Ersetzen Sie ihn in Kleinbuchstaben: <a id="\L\P<x>\E"></a>
War: <a id="VALUE"></a>
Wurde: <a id="value"></a>