Scrivi una funzione per convertire il testo CamelCased in snake_case: FunctionForHTMLManipulationdiventafunction_for_html_manipulation
Il testo di input sarà un unico identificatore adatto in molte lingue. Deve iniziare con una lettera inglese, quindi essere seguito da un numero qualsiasi di lettere o cifre inglesi. Non sono ammessi altri caratteri (spazi, simboli, ecc.).
Ogni "parola" all'interno del testo CamelCased inizierà con una lettera maiuscola a meno che all'inizio del testo o immediatamente dopo una cifra, e sarà seguita da zero o più lettere, sempre nello stesso caso. I gruppi di cifre saranno considerati come parole separate ma passeranno invariati.
In altre parole, una lettera minuscola seguita da una lettera maiuscola indica un'interruzione di parola. Qualsiasi lettera e cifra l'una accanto all'altra indicano una pausa. Una lettera maiuscola seguita da un'altra lettera maiuscola e una lettera minuscola indica un'interruzione di parola.
...lU...=> ...l_u...
...l9...=> ...l_9...
...U9...=> ...u_9...
...9l...=> ...9_l...
...9U...=> ...9_u...
...UUl...=>...u_ul...
Entrambi Buy24Beerse buy24beersdiventano buy_24_beers.
MacDonaldAndObriandiventa mac_donald_and_obrian.
MACDonaldAndOBriandiventa mac_donald_and_o_brian.
...UUl...=> ...u_ul....
...indica che è nel mezzo di una stringa.
MACDonaldAndOBriandiventamac_donald_and_o_brian" - perché?