On 01/15/2016 04:24 AM, Charles T. Smith wrote:
while ($str != $tail) {
$str ~= s/^(head-pattern)//;
use ($1);
}
IDK... maybe the OP is looking for something like this? :
import re
def do_something(matchobj):
print("I found {}".format(matchobj.group(0)))
return ""
tail = "END"
str = "FeeFieFooFumEND"
pattern = r"F.."
while(str and str != tail):
oldstr = str
str = re.sub(pattern, do_something, str, 1)
if str == oldstr:
break
Though I would probably change the perl code, too:
while ($str and $str != $tail) {
$str ~= s/^(head-pattern)//;
if ($1) {
do_something($1);
} else {
last;
}
}
Otherwise there is too much risk of an infinite loop if the string is
(1) empty, or (2) never ends up being equal to "tail"
Nathan
--
https://mail.python.org/mailman/listinfo/python-list