http://www.perlmonks.org?node_id=1011139


in reply to Re^2: Removing digits from a string
in thread Removing digits from a string

s/^\D*\d+// # 'first few digits'

Replies are listed 'Best First'.
Re^4: Removing digits from a string
by Athanasius (Archbishop) on Jan 01, 2013 at 13:38 UTC
    s/^\D*\d+// # 'first few digits'

    Even if this interpretation is correct (and I agree with erix that it’s unlikely), there is no warrant in the OP to remove the non-digit prefix. So the regex would need to be: s/^(\D*)\d+/$1/. For example:

    23:21 >perl -wE "$f = 'xyz20130101Customer100.imp'; $f =~ s/^(\D*)\d+/ +$1/; say $f;" xyzCustomer100.imp 23:22 >

    Update (2nd January, 2013):

    Thank-you Anonymous Monk for the improvement below using \K: shorter and “much more efficient”, according to perlre. I’ve learned something useful!

    Hope that helps,

    Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

      s/^\D*\K\d+//;
Re^4: Removing digits from a string
by erix (Prior) on Jan 01, 2013 at 11:07 UTC

    That's likely not the right interpretation of his use of 'truncate', which suggests outer positions, no? But I guess the OP should be able to 'figure' it out ;-)

      That's likely not the right interpretation of his use of 'truncate', which suggests outer positions, no? But I guess the OP should be able to 'figure' it out ;-)

      I kinda doubt the op knows what truncate means, or that the OP would know how to apply any of the answers :)