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

Re: a task for a regular expression expert

by stephen (Priest)
on Apr 13, 2002 at 17:23 UTC ( #158798=note: print w/ replies, xml ) Need Help??


in reply to a task for a regular expression expert

Regular expressions are the vice-grips in the Perl programmer's toolbox. They're important tools. They're useful for just about everything. And overusing them can get you into sticky situations.

Here's code to transform 'artist_name-title_with_other(chars)' into 'Artist Name - Title With Other Chars'.

my $song = q{xecutioners-you_cant_scratch_(skit)}; # Split up artist and title of song my ($artist, $title) = split(/-/, $song, 2); # Turn the artist and title into human text, then stick # them back together with ' - '. my $new_song = humanize_text($artist) . ' - ' . humanize_text($title); print $new_song, "\n"; # Runs a piping operation. From back to front, here's what # happens: # 1. We split 'something_like(this)' into 'something', # 'like', 'this' # 2. We capitalize the first letter of every word # 3. We stick the list back together delimited with spaces sub humanize_text { return join(' ', map(ucfirst($_), split(/[^a-zA-Z]+/, $_[0])) ); }

stephen


Comment on Re: a task for a regular expression expert
Download Code
Replies are listed 'Best First'.
Re: Re: a task for a regular expression expert
by emilford (Friar) on Apr 13, 2002 at 17:39 UTC
    Thanks Stephen, this is a really good start! I ran the code on a few sample file names and it works fairly well. There are, however, still a few kinks that I need to work through.

    1) some song titles have numbers in them - these are removed with curr +ent code 2) what about &'s and apostrophes - these are also removed 3) i also need to find a way to remove certain key words that don't re +ally belong in the title
    Either way, the code is a great start. Thanks. - Eric

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (18)
As of 2015-07-29 16:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (265 votes), past polls