Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Matching strings with non-word characters

by chas (Priest)
on Apr 17, 2006 at 13:14 UTC ( #543808=perlquestion: print w/ replies, xml ) Need Help??
chas has asked for the wisdom of the Perl Monks concerning the following question:

I'm trying to match strings such as "X \ n a x" which appear in spam email so I can filter. I can do this but not in a completely satisfactory way. I guess I've just gotten myself confused, but I don't understand why
$_="X "; if(m'X\ '){print "OK1\n";} $_='X\ '; if(m'X\ '){print "OK2\n";}
produces "OK1" only. I would expect the first match to fail and the second to succeed. Thanks for any comments!

Comment on Matching strings with non-word characters
Download Code
Replies are listed 'Best First'.
Re: Matching strings with non-word characters
by Tanktalus (Canon) on Apr 17, 2006 at 13:19 UTC

    That's because \ is a special character. Thus, you need to escape it if you want it to appear literally. To escape it, just use a backslash - thus, you get m'X\\ '. Although I think the single-quote as a seperator is a bit wierd.

      Thanks! I used single quote as separator because I thought that would make the "\" not considered special. I guess that is wrong. (Using single quote prevents interpolation in patterns, though.)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (9)
As of 2015-07-30 08:21 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 (270 votes), past polls