in reply to Regex negative word

what if you are trying to do it so you can say: if it doesnt begin with cat but ends in dog. does this work in a single statement?

Replies are listed 'Best First'.
Re^2: Regex negative word
by radiantmatrix (Parson) on Mar 30, 2006 at 20:22 UTC

    There are a few different approaches. Off the top of my head...

    # assume $_ holds the value I'm testing # 1: Two tests if ( /^(?!cat)/ && /dog$/ ) {} # if does not start with cat && ends wi +th dog # 2: take advantage of zero-width assertion in (?!cat) if ( /^(?!cat).*dog$/ ) {} # if we start with something that is not 'c +at' # then have 0 or more chars before ending w +ith 'dog' # 3: not using regex at all! if ( index($_, 'cat') != 0 && index($_,'dog') == length($_) - 3 ) {} # if we don't find 'cat' at the head of the string, # && find 'dog' at the end.
    <-radiant.matrix->
    A collection of thoughts and links from the minds of geeks
    The Code that can be seen is not the true Code
    I haven't found a problem yet that can't be solved by a well-placed trebuchet