En Wed, 14 Feb 2007 01:07:33 -0300, John Nagle <[EMAIL PROTECTED]>
escribió:
> Here's a large Perl regular expression, from a Perl address parser in
> CPAN:
>
> use re 'eval';
> $Addr_Match{street} = qr/
> (?:
> # special case for addresses like 100 South Street
> (?:($Addr_Match{direct})\W+ (?{ $_{street} = $^N })
> ($Addr_Match{type})\b (?{ $_{type} = $^N }))
> |
> (?:($Addr_Match{direct})\W+ (?{ $_{prefix} = $^N
> }))?
> (?:
> ([^,]+) (?{ $_{street} = $^N })
> (?:[^\w,]+($Addr_Match{type})\b (?{ $_{type} = $^N }))
> (?:[^\w,]+($Addr_Match{direct})\b (?{ $_{suffix} = $^N
> }))?
> |
> ([^,]*\d) (?{ $_{street} = $^N })
> ($Addr_Match{direct})\b (?{ $_{suffix} = $^N })
> |
> ([^,]+?) (?{ $_{street} = $^N })
> (?:[^\w,]+($Addr_Match{type})\b (?{ $_{type} = $^N }))?
> (?:[^\w,]+($Addr_Match{direct})\b (?{ $_{suffix} = $^N
> }))?
> )
> )
> /ix;
>
> I'm trying to convert this to Python.
>
> Those entries like "$(Addr_Match{direct}) are other regular expressions,
> being used here as subexpressions. Those have already been converted
> to forms like "Addr_Match.direct" in Python. But how to call them?
> Is that possible in Python, and if so, where is it documented?
That would be string interpolation, like this:
Addr_Match = {"direct": "some_re_string",
"type": "other_re"
}
regexp = "%(direct)s %(type)s" % Addr_Match
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list