Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: Re-define Word Boundary?

by thelenm (Vicar)
on Nov 20, 2003 at 23:27 UTC ( #308753=note: print w/ replies, xml ) Need Help??

in reply to Re-define Word Boundary?

\w matches alphanumerics and underscore. \b is effectively the same as using lookbehinds and lookaheads like this:


Update: Hmm, or even nicer, as merlyn posted in •Re: Why do zero width assertions care about lookahead/behind? (code examples also updated),


So to make a specialized version of \b that views "-" and "/" as "word characters" (sort of), you might use something like this:


So maybe something like this will suit you?

my $w = '\w/-'; my $b = "(?:(?<![$w])(?=[$w])|(?<=[$w])(?![$w]))"; my @words = ($rec =~ /${b}[$w]+${b}/g);

I've tested this a little but not a lot, and it seems all right. You'll want to verify it yourself before you go using it for anything important :-)

-- Mike

XML::Simpler does not require XML::Parser or a SAX parser. It does require File::Slurp.
-- grantm, perldoc XML::Simpler

Comment on Re: Re-define Word Boundary?
Select or Download Code

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (7)
As of 2015-11-26 18:01 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (705 votes), past polls