G'day nehavin,

Your first problem is your character class: those extra characters (e.g. parentheses) aren't doing what it looks like you're expecting them to do. See "perlretut: Using character classes" for details.

Beyond this, you've overcomplicated what's needed. You can use the regex as the condition and $var =~ /,/ will be true if $var contains a comma. Using !~, instead of =~, negates the result. Perhaps a review of "perlretut - Perl regular expressions tutorial" would prove useful.

You might also consider using transliteration (either y/// or tr/// — they're synonymous) which can provide a speed benefit if that's important. See "perlop: Quote-Like Operators" for details.

Here's some examples:

#!/usr/bin/env perl -l use strict; use warnings; my @vars = ('abc,d', 'abcd', 'a,b,c,d'); for my $var (@vars) { print "var = '$var'"; print 'm/,/: ', $var =~ /,/ ? 'not matches' : 'matches'; print 'y/,/,/: ', $var =~ y/,/,/ ? 'not matches' : 'matches'; print '! m/,/: ', $var !~ /,/ ? 'matches' : 'not matches'; print '! y/,/,/: ', $var !~ y/,/,/ ? 'matches' : 'not matches'; }

Output:

var = 'abc,d' m/,/: not matches y/,/,/: not matches ! m/,/: not matches ! y/,/,/: not matches var = 'abcd' m/,/: matches y/,/,/: matches ! m/,/: matches ! y/,/,/: matches var = 'a,b,c,d' m/,/: not matches y/,/,/: not matches ! m/,/: not matches ! y/,/,/: not matches

-- Ken


In reply to Re: Regex to capture every readable character except COMMA by kcott
in thread Regex to capture every readable character except COMMA by nehavin

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.