Я смотрю на регулярное выражение в нашем исходном коде, и я не уверен, что это правильно.Что означает это регулярное выражение?
<<SWE.[^<<]*>>
В частности, что делает часть [^<<]
? Я думал, что скобки позволили вам поставить диапазон. Не включает в себя "< <" или еще один "<"?
Если это строка текста разбираемый:
<<SWE.SomeText>><<SWE.SomeMoreText>>
Я думаю, что намерение автора, чтобы иметь два матча, а не один.
match[0] = <<SWE.SomeText>>
and
match[1] = <<SWE.SomeMoreText>>
вместо
match[0] = <<SWE.SomeText>><<SWE.SomeMoreText>>
Есть ли лучший способ? Как насчет <<SWE.*?>>
'[^>] *' все равно может включать обратное отслеживание, если часть, которая приходит после него, не может совпадать. Чтобы действительно убить обратный путь, вы должны сделать его притяжательным, как этот '[^>] * +'. – Geert