Ho bisogno di filtrare una riga di testo con un numero variabile ma grande di spazi bianchi. Riesco a capire un modo janky di fare un ciclo e aggiungere spazi bianchi a $ pippo, quindi splicing nel testo, ma non è una soluzione elegante.Come inserire un sacco di spazi in Perl?
risposta
Ho bisogno di un po 'più di informazioni. Stai semplicemente aggiungendo del testo o hai bisogno di inserirlo?
In entrambi i casi, un modo semplice per ottenere la ripetizione è l'operatore "x" di Perl, ad es.
" " x 20000
vi darà 20 K spazi.
Se abbia una stringa esistente ($ s dire) e si desidera pad fuori a 20K, provare
$s .= (" " x (20000 - length($s)))
BTW, Perl ha an extensive set of operators - vale la pena studiare se siete serio circa la lingua.
AGGIORNAMENTO: La domanda come originariamente richiesta (è stata modificata) ha richiesto circa 20 K spazi, non un "lotto di spazi", quindi il 20K nella mia risposta.
Grazie, funziona perfettamente. Ero sicuro che perl avrebbe avuto una soluzione elegante per farlo, ma le mie capacità di googling mi hanno deluso (anche se ho trovato quel sito che hai menzionato). – Timo
L'ho modificato per renderlo più generalmente utile. "20000" si qualifica ancora come "molto" secondo me. Scusate se qualcuno ha capito il caso. –
Nessuno ha preso il mio caso e penso che le tue modifiche abbiano un senso. Ero solo un po 'preoccupato per il fatto che qualcuno che arriva più tardi potrebbe chiedersi perché ho 20.000 dollari nel mio codice quando non ne parliamo altrove. Sto solo cercando di tenere il passo con l'ethos SO di non solo risolvere il problema di qualcuno, ma creare un repository di domande e risposte utili per i futuri lettori. – dave
utilizzare la 'x' operatore:
print ' ' x 20000;
si dovrebbe chiedere qualcosa come * "come faccio ad inserire un certo numero di spazi bianchi in perl/regex? "* ... –
Qual è la parola" regex "nel tuo titolo? – innaM
Ho incluso espressioni regolari nel titolo (si noti che è stato modificato per chiarezza) poiché presumo che possa esserci un modo hacky di ricorsivamente ricollocare uno spazio con diciamo 10 spazi cinque volte per ottenere un ordine di 10000 spazi. – Timo