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


in reply to String manipulation

Another way, borrowing Athanasius' alternation:
use warnings; use strict; while (<DATA>) { s/(\d+)(th|st|nd|rd)/$1/; print; } __DATA__ December 14th 2012 December 21st 2012 December 22nd 2012

See also:

Replies are listed 'Best First'.
Re^2: String manipulation
by nvivek (Vicar) on Dec 17, 2012 at 05:28 UTC
    Following will solve December 23rd 2012 to December 23 2012. It will work for all 1st, 2nd and 3rd to 1, 2, 3 respectively.
    use warnings; use strict; while (<DATA>) { s/(\d+)([a-z]{2})/$1/; print; } __DATA__ December 14th 2012 December 21st 2012 December 22nd 2012 December 23rd 2012