Perl, regexp
Поскажите, пожалуйста, правильный способ вытащить отсюда:
<a href="selprocess=0">First</a><a href="selprocess=1">Second</a><a href="selprocess=2">Third</a>
число 2, используя ключи: selprocess и Third.
Вот так (кусок функции):
my $str = "Third";
$_[0] =~ m/selprocess=(\d+).*selprocess=(\d+).*($str)/i;
$2;
оно достаёт, то, что надо, но если ссылка с Third стоит на первом месте, ничего не находит.
Вот так:
my $str = "Third";
$_[0] =~ m/(selprocess=(\d+).*)*selprocess=(\d+).*($str)/i;
$3;
оно вроде бы достаёт число 2 независимо от того, в какой позиции находится ссылка с Third, но в реальности на уже моем, не тестовом для форума образце, где страничка большая и число ссылок большое, оно на регэкспе выдаёт:
Complex regular subexpression recursion limit (32766) exceeded at ... line ...
Конечно можно последовательно проверить первый вариант, а потом выполнить:
$_[0] =~ m/selprocess=(\d+).*($str)/i;
$1;
достав нужное, но хочется одним регэкспом вытащить.