On Wed, August 15, 2007 9:55 am, Yitzchak Scott-Thoennes wrote:
> On Wed, August 15, 2007 7:57 am, Shlomi Fish wrote:
>> On Wednesday 15 August 2007, Yitzchak Scott-Thoennes wrote:
>>> On Tue, August 14, 2007 7:22 am, Peter Gordon wrote:
>>>> s!(<td.*?>)(.*?)(</td>)!my $t1 = $1 ;my $t2 = $2 ; my $t3 = $3 ;
>>>> $t2
>>>> =~
>>>> s/\s/ /g ; "$t1$t2$t3" ;!egs ;
>>>
>>> Is there a reason not to just:
>>>
>>> s{(<td.*?>)([^ ]+) ([^ ]+) ([^ ]+) ([^ +)(</td>)}
>>> {$1$2 $3 $4 $5$6}g
>>
>> This will work only if there are exactly 4 words between the <td> and
>> the </td>, and with a very particular arrangement of whitespace and
>> non-whitespace characters.
>>
>> As such it is not recommended to use this regex.
>
> Read the original use case again. I think the specificity is an asset,
> not a liability.
Except that I forgot the timezone. Better:
s{(<td.*?>[^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+</td>)}
{$1 $2 $3 $4 $5}g
_______________________________________________
Perl mailing list
[email protected]
http://perl.org.il/mailman/listinfo/perl