[Israel.pm] A simpler regex required

Yitzchak Scott-Thoennes sthoenna at efn.org
Wed Aug 15 09:55:02 PDT 2007


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/&nbsp;/g ; "$t1$t2$t3" ;!egs ;
>>
>> Is there a reason not to just:
>>
>> s{(<td.*?>)([^ ]+) ([^ ]+) ([^ ]+) ([^ +)(</td>)}
>> {$1$2&nbsp;$3&nbsp;$4&nbsp$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.




More information about the Perl mailing list