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 '.'
In reply to Re^2: regex to match words and numbers
by Animator
in thread regex to match words and numbers
by doubledecker
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |