Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

regular expression

by Anonymous Monk
on Feb 28, 2010 at 05:33 UTC ( #825731=perlquestion: print w/ replies, xml ) Need Help??
Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

How to delete the string anything before last '/' and also the next number
The file should be '.xmlreal.xml'

Comment on regular expression
Replies are listed 'Best First'.
Re: regular expression
by McDarren (Abbot) on Feb 28, 2010 at 05:51 UTC
    my $string = '~/tmp/hfj/abc/bhd/5009.xmlreal.xml'; $string =~ s/^.*\/\d+//; print "$string\n";

    Another way is to use File::Basename to extract the file name, and then remove the bits you don't want.

    use File::Basename; $string = '~/tmp/hfj/abc/bhd/5009.xmlreal.xml'; my ($filename, $directories, $suffix) = fileparse($string); $filename =~ s/^\d+//; print "$filename\n";



      I don't understand the purpose of the /g regex modifier in the above regex.

        heh.. it serves no purpose whatsoever.
        I'll remove it. Not quite sure what I was thinking about there :)
Re: regular expression
by AnomalousMonk (Canon) on Feb 28, 2010 at 05:53 UTC

    This seems to do the trick:

    >perl -wMstrict -le "my $s = '~/tmp/hfj/abc/bhd/5009.xmlreal.xml'; $s =~ s{ \A .* / \d+ }{}xms; print qq{'$s'}; " '.xmlreal.xml'
Re: regular expression
by sauoq (Abbot) on Feb 28, 2010 at 21:27 UTC
    Assuming the filename is in $_:
    "My two cents aren't worth a dime.";
Re: regular expression
by johngg (Abbot) on Feb 28, 2010 at 23:41 UTC

    Another way using split.

    $ perl -E ' > $str = q{~/tmp/hfj/abc/bhd/5009.xmlreal.xml}; > ( $path = ( split m{/}, $str )[ -1 ] ) =~ s{^\d+}{}; > say $path;' .xmlreal.xml $

    McDarren's suggestion of File::Basename is probably the safest and most portable though.



Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://825731]
Approved by McDarren
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2016-02-09 02:23 GMT
Find Nodes?
    Voting Booth?

    How many photographs, souvenirs, artworks, trophies or other decorative objects are displayed in your home?

    Results (297 votes), past polls