Assuming I understand your spec, this can be accomplished using a combination of
positive look aheads combined with
Backreferences.
#!/usr/bin/perl
use strict;
use warnings;
my @bad_strings = qw(ee);
my @good_strings = qw(ef);
foreach (@bad_strings) {
print "$_ failed\n" if /(.)(?!\1|$)/;
}
foreach (@good_strings) {
print "$_ failed\n" if not /(.)(?!\1|$)/;
}
The regular expression works as follows:
- Any character is matched and captured into reference 1 ((.))
- A negative look ahead ((?!...)) then checks if the next character is either the matched character (\1) or (|) the end of the string ($). If either matches, the expression fails.
Update: Just noticed the bit about $&. The above code will store '.' in $& for your example. If you want to include both characters, you can append an additional '.' to the end of the regular expression, but note that this will consume two characters and hence removes the opportunity to also match '+.' for your sample. Rather than using $&, you may consider using $-[0] (see @ ) combined with substr. If you are only interested in the first match, you may want to wrap the entire expression in parentheses as per BrowserUK's suggestion below.
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.