Dies ist nicht so einfach wie es scheint. Die meisten von euch denken wahrscheinlich an die Regex /([A-Z])/_$1/
, wie ich sie überall im Internet gefunden habe, aber meine spezielle Situation ist etwas komplizierter. Meine Source-Zeichenfolge enthält mehr Inhalt, den ich nicht vor einem Teil konvertiert haben möchte, dass ich tun.Pascal-Setter in einen Unterstrich-getrennten Variablennamen konvertieren
Betrachten sie einen regelmäßigen Setzer:
public function setUserId()
Natürlich ist diese Methode einen Parameter fehlt. Vielleicht habe ich viele dieser Methoden. Ich mag, dass die Linie konvertieren in
public function setUserId($user_id)
das ist eine ziemlich einfache Sache zu prüfen, aber nicht so einfach, wie ich es tiefer nachzudenken. Es ist ähnlich wie Andreas_D in this thread, aber mit der zusätzlichen Herausforderung zu versuchen, den Variablennamen iterativ zu ändern ...
Es wird wahrscheinlich etwas offensichtlich mit regulären Ausdrücken, aber ich bin immer noch ziemlich neu mit ihnen. Wie auch immer, ich kann nirgendwo eine vernünftige Lösung für dieses Problem finden.
Edit: natürlich, ich weiß, dass es keine Hauptstädte in "öffentlichen Funktionen" gibt, die es sicher machen. Aber diese Suche & Substitution wird gegen Blöcke von Code ausgeführt, und ich möchte sicherstellen, dass die Zeichenfolge, die ich geändert mit "öffentliche Funktion" beginnt.
FANTASTISCHEN MizardX. Dies ist genau das, was ich brauchte und es funktioniert super. Ich kenne Python noch nicht (habe immer noch vor zu lernen ...), aber es ist eine sehr intuitive Sprache, leicht zu lesen. Sehr gute Wahl für einen Testfall. – JMTyler