Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
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
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 avoiding work at the Monastery: (9)
As of 2014-07-28 15:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (203 votes), past polls