You haven't asked a question, nor explained what isn't working, so this is a guess.
my $row = 'We_need_feed'; #my ($last) = $row =~ /[^_]$/g; #match we # [^_] matches everything except underscore, but only one character; # Plus you've anchored it to the last character before the end of the +string, # so it will always and only match the last character of the string; # unless it is an underscore, in which case it fails to match at all. #my ($last) = $row =~ /^\w?[^_]/g;#match feed # ^\w? matches a single non-whitespace character at the start of the s +tring, # if the first character isn't whitespace, otherwise it matches nothin +g. # [^_] matches a single non-underscore as above. # Ie. You matched two characters "We" my ($last) = $row =~ /[need]+$/g ; # [need]+ matches a one or more characters, so long as they are either + 'd' or 'e' or 'n'; other wise nothing # but the $ means only at the of the line. # so this matched the 3-char string 'eed'.
You'll get better answers if you tell us what you need to know in words as well as code. Relying on us to read between the lines of your non-functional code and comments to extract the meaning and question, is unlikely to get the best answers. Indeed, If I wasn't bored out of my mind waiting for a process that has been running for 50+ hours to finish, I wouldn't have bothered answering your lazy post at all.
In reply to Re: perl regex
by BrowserUk
in thread perl regex
by cbtshare
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |