Ответ
Misha v.3 28.12.2011 02:49
/ 28.12.2011 02:51
Пробовал [^^<]+? заменять на .+(?=</a>), экранировал символы <>, но ничего не получилось
не удивительно.
[^^<]+? -- любой символ кроме '<' повторяющийся 1 или более раза, взятый минимально возможное число раз
.+(?=</a>) -- любые символы взятые макимально возможное число раз, за которыми следует комбинация "</a>"
т.е. в втором случае нужен как минимум символ '?' после символа '+' (чтобы отключить жадность), но в вашем случае вообще нельзя писать "?=", можно делать обычную группировку (?:</a>), а ещё лучше не делать вообще ничего: ".+?</a>"
P.S. у парсера с заглядыванием вперёд ("?=", "?!") проблем не встречал, а с заглядыванием назад ("?<=", "?<!") проблема есть в случае, если делается подстановка, которая попадает под этот look behind шаблон. то, что только что подставилось, не анализируется.