in reply to Regular Expression Help
If you are trying to match an exact substring then there is usually little point in using regex for that. I would use index instead.
use strict; use warnings; use Test::More tests => 1; my $corpus = q{foo<span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(i +b)" data-reactid="33">bar}; my $lookfor = q{<span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib) +" data-reactid="33">}; my $res = index ($corpus, $lookfor) > -1 ? 1 : 0; ok $res, 'Substring found';
Update: Replacing the ternary with a simple increment gives us more info in $res with the same testing ability. Adding a negative test too gives the better example:
use strict; use warnings; use Test::More tests => 2; my $corpus = q{foo<span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(i +b)" data-reactid="33">bar}; my $lookfor = q{<span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib) +" data-reactid="33">}; my $res = index ($corpus, $lookfor) + 1; ok $res, 'Substring found'; $corpus = 'Something else'; $res = index ($corpus, $lookfor) + 1; ok !$res, 'Substring not found';
|
|---|