Quindi, solo per un po 'di chiarimenti, ci sono tre modi per procedere: sub
, reverse.chomp.reverse
e lstrip
.
Mi raccomando a sub
perché è un po 'meno leggibile, ma anche per il suo funzionamento: creando una nuova stringa che eredita dalla vecchia stringa. Inoltre hai bisogno di un'espressione regolare per qualcosa che sia abbastanza semplice.
Quindi sei a reverse.chomp.reverse
e lstrip
. Molto probabilmente, si desidera lstrip
perché è un po 'più veloce, ma si tenga presente che le operazioni strip
sono non le stesse operazioni di chomp
. strip
rimuoverà tutti leader a capo e spazi bianchi:
"\n aaa\nbbb".reverse.chomp.reverse # => " aaa\nbbb"
"\n aaa\nbbb".lstrip # => "aaa\nbbb"
Se si vuole fare in modo di rimuovere un solo personaggio e che è sicuramente una nuova riga, utilizzare la soluzione reverse.chomp.reverse
. Se consideri tutte le nuove linee guida e la spazzatura di spazi bianchi, vai con lstrip
.
L'unico caso a cui posso pensare per l'utilizzo di espressioni regolari sarebbe se si dispone di un numero sconosciuto di \r
se \n
s all'inizio e si desidera tagliare tutti ma evitare di toccare qualsiasi spazio bianco. Potresti usare un loop e più metodi String per il trimming, ma sarebbe solo più brutto. Le implicazioni sulla performance non contano molto.
Vuoi lasciare finale a capo in posto (alla fine della riga)? –