Conversione di maiuscole e minuscole, differenze, conteggio, escape e pulizia degli spazi bianchi per il testo.
Gli elenchi di testo arrivano in cattive condizioni. Una colonna di posta elettronica incollata da un foglio di calcolo presenta spazi finali su ogni riga. Un estratto di registro contiene righe duplicate. Un elenco copiato da PDF presenta interruzioni di riga nel mezzo delle frasi. Nessuno di questi è un problema difficile, ma risolverli a mano su quattrocento righe è miserabile e cercare un linguaggio di scripting per una pulizia una tantum è più lento di quanto sembri.
Tutto qui funziona sul testo nella casella sopra. Ogni pulsante rappresenta una trasformazione, applicata all'intero testo, e ognuno di essi può essere annullato. Lavora a piccoli passi e controlla i conteggi man mano che procedi.
L'ordine conta più di quanto le persone si aspettino. Il taglio prima della deduplicazione è quasi sempre corretto: due linee che differiscono solo per uno spazio finale non sono duplicate finché non le tagli, quindi la deduplicazione prima le lascia silenziosamente entrambe al loro posto.
Allo stesso modo, rimuovi le righe vuote prima di ordinare se desideri un risultato compatto, poiché le righe vuote vengono ordinate a un'estremità e lasciano uno spazio vuoto che dovrai comunque rimuovere.
Il pannello delle statistiche si aggiorna durante la digitazione. La maggior parte è autoesplicativa, ma il conteggio dei caratteri merita una nota, perché è il numero che la maggior parte degli strumenti sbaglia.
I computer memorizzano il testo come una sequenza di unità di codice e un singolo carattere visibile può occuparne diversi. L'emoji 👩💻 è una cosa che puoi vedere, ma è composta da un'emoji donna, un falegname invisibile e un'emoji portatile: cinque unità di codice in totale. Un contatore ingenuo segnala 5. Questo strumento conta i cluster di grafemi, che è il nome tecnico di "come una persona chiamerebbe un personaggio", quindi riporta 1.
La stessa logica si applica ai caratteri accentati scritti con segni combinati e alle emoji contrassegnate. Se stai contando rispetto a un limite imposto da un sistema diverso (una colonna di database, un gateway SMS, una piattaforma social) tieni presente che l'altro sistema potrebbe contare in modo diverso.
I pulsanti di estrazione estraggono e-mail, URL o numeri dal testo non strutturato e li forniscono come elenco pulito, deduplicato e in ordine di apparizione.
L'estrazione URL rimuove la punteggiatura della frase finale, quindi "visita https://example.com." restituisce URL senza il punto e si ferma a una parentesi di chiusura in modo che URL all'interno delle parentesi risulti pulito.
La corrispondenza delle e-mail è deliberatamente pragmatica piuttosto che esaustiva. La specifica completa per un indirizzo email valido consente costruzioni che essenzialmente nessuno usa, e la corrispondenza di tutte produce risultati peggiori sul testo reale rispetto a uno schema più ristretto.
Convertire "hello world" in camelCase è semplice. La conversione di parseHTTPResponse2Json è il punto in cui gli strumenti non sono d'accordo, perché i confini sono impliciti anziché contrassegnati.
Questo strumento si divide in tre segnali: qualsiasi sequenza di caratteri non alfabetici e non numerici (spazi, trattini, trattini bassi, punteggiatura); una lettera o cifra minuscola seguita da una lettera maiuscola; e una serie di lettere maiuscole seguite da una coppia maiuscola e poi minuscola. Quest'ultima regola è ciò che separa correttamente "HTTP" da "Response" in parseHTTPResponse, piuttosto che produrre p-a-r-s-e-h-t-t-p-response o trattare l'intero acronimo come una parola incollata a quella successiva.
Il risultato è che parseHTTPResponse diventa parse_http_response in caso di serpente e parse-http-response in caso di kebab, che è ciò che si aspetta la maggior parte delle guide di stile.
Il titolo rende maiuscola la prima lettera di ogni parola e minuscolo il resto, quindi "ciao WORLD" diventa "Ciao mondo". Non conosce le regole guida di stile che mantengono parole brevi come "di" e "il" in minuscolo, perché tali regole variano a seconda della pubblicazione e applicarne una silenziosamente sarebbe un'ipotesi.
Le maiuscole e minuscole delle frasi mettono tutto in minuscolo e poi rendono maiuscola la prima lettera di ogni frase, rilevando le estremità della frase con punti interrogativi e punti esclamativi, inclusi i loro equivalenti CJK a larghezza intera. È la scelta giusta per il testo arrivato in ALL CAPS.
La trasformazione slug produce un identificatore URL-safe: minuscolo, accenti ripiegati sulle lettere base e ogni sequenza di caratteri non alfanumerici sostituita con un singolo trattino.
La piegatura dell'accento viene eseguita scomponendo i caratteri e rimuovendo i segni di combinazione, quindi "Café Crème" diventa "cafe-creme" anziché "caf-cr-me". Eliminare completamente le lettere accentate è un bug comune nei generatori di lumache e altera i nomi.
I separatori iniziali e finali vengono eliminati e le emoji e gli altri simboli vengono rimossi poiché non hanno una rappresentazione URL utile.
Trova e sostituisci ha due modalità. La modalità letterale, quella predefinita, evita ogni carattere speciale, quindi la ricerca di "a.b" trova esattamente "a.b" e non "axb". La modalità Regex trasmette il tuo pattern così com'è.
Ogni modello digitato viene compilato all'interno di una guardia. Se non è valido, riceverai un messaggio che spiega il problema e il tuo testo non verrà modificato. Ciò conta più di quanto sembri: digitare un'espressione regolare è un processo incrementale e un solo "(" è uno stato intermedio perfettamente normale sulla strada verso un modello di lavoro. Uno strumento che genera un errore non gestito in quel momento - o peggio, cancella la scatola - è inutilizzabile.
In modalità regex, la sostituzione supporta i gruppi di acquisizione con $1, $2 e così via. La riformattazione delle date è l'esempio canonico: find (\d{4})-(\D{2})-(\D{2}) e sostituirlo con $3/$2/$1 girare 2024-01-02 in 02/01/2024.
L'opzione "Parola intera" racchiude la ricerca entro i limiti delle parole, quindi la ricerca di "gatto" corrisponde alla parola gatto ma non a "gatto" all'interno di "concatena".
Si compone con entrambe le modalità. Nella modalità letterale il testo viene prima sfuggito e poi delimitato; in modalità regex l'intero pattern è delimitato come un gruppo, quindi alternanze come cat|dog si comportano come ci si aspetterebbe invece di legare il confine solo al primo ramo.