in reply to Re: regex to match words and numbers
in thread regex to match words and numbers

Note that the regex (/^[*]|[a-zA-Z]|\d+\./)does not match what the OP wants.

The regex should contain a group or the '^' needs to be repeated.

That is: /^(?:[*]|[a-zA-Z]|\d+\.)/ OR /^[*]|^[a-zA-Z]|^\d+\./

(The regex as posted will return true when it contains a letter somewhere in the string)

Update: an example was requested but that request was later removed.

Anyway: an example as requesetd:

#!/usr/bin/perl use warnings; use strict; my @chunks = <DATA>; for (@chunks) { print unless /^[*]|[a-zA-Z]|\d+\./; } __DATA__ a @ b @ d e

Output:

@

The lines 'a', 'b', 'e' are rejected. (ok)
The line '@' is not rejected. (ok)
The line '@ d' is rejected. (not ok)

As far as I can tell '@ d' does not start with a '*'. It also does not start with a word and it also does not start with a number followed by a '.'

Replies are listed 'Best First'.
Re^3: regex to match words and numbers
by toolic (Bishop) on Jun 08, 2011 at 14:16 UTC
    I agree. I originally had the group-no-capture, then foolishly removed them.