Beefy Boxes and Bandwidth Generously Provided by pair Networks Joe
P is for Practical
 
PerlMonks  

Re^6: Space between digits

by AnomalousMonk (Monsignor)
on Nov 23, 2012 at 04:56 UTC ( #1005210=note: print w/ replies, xml ) Need Help??


in reply to Re^5: Space between digits
in thread Space between digits

    s/ /   / if m/\d+\:\d+ \d+\/\d+\/\d+/;

And because substitution is already conditional upon a match, the operation can easily be further briefened (if that's a word) and also made more specific and at the same time more general or global:

>perl -wMstrict -le "my $string = '9 9 0:00 11/21/2012 12:34 01/23/2012 9 9'; print qq{'$string'}; ;; $string =~ s{ \d{1,2}:\d{2} \K [ ] (?= \d{2}/\d{2}/\d{2}) } { }xmsg; print qq{'$string'}; " '9 9 0:00 11/21/2012 12:34 01/23/2012 9 9' '9 9 0:00 11/21/2012 12:34 01/23/2012 9 9'

The stage is now set to factor out the definitions of time and date, etc., so they can easily be made more specific, perhaps ultimately being able to reject things like a 'time' of 99:99 or a 'date' of 98/76/5432, or accept a date in the form of either 01/23/2012 or 2012/01/23, etc.

>perl -wMstrict -le "my $string = '9 9 0:00 11/21/2012 12:34 01/23/2012 9 9'; print qq{'$string'}; ;; my $time = qr{ (?<! \d) \d{1,2} : \d{2} (?! \d) }xms; my $date = qr{ (?<! \d) \d{2} / \d{2} / \d{4} (?! \d) }xms; ;; $string =~ s{ $time \K [ ] (?= $date) }{ }xmsg; print qq{'$string'}; " '9 9 0:00 11/21/2012 12:34 01/23/2012 9 9' '9 9 0:00 11/21/2012 12:34 01/23/2012 9 9'


Comment on Re^6: Space between digits
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1005210]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (12)
As of 2014-04-16 12:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (425 votes), past polls