При первом взгляде на исходное регулярное выражение [^\]
соответствует чему угодно, кроме обратной косой черты.Добавление плюса после совпадения один или несколько раз.Наконец, доллар в конце соответствует концу строки.Таким образом, это будет соответствовать последовательности символов, которые не являются обратными слешами, за которыми следует конец строки.Поскольку регулярные выражения являются жадными, они будут захватывать все, начиная от последнего обратного слеша до конца строки.
Для захвата обратного, то есть всего до последнего обратного слеша, вы можете сделать что-то вроде ^.+\\
, которое должно захватывать все изначало строки (^
) до последней обратной косой черты.
Если вы можете использовать группы сопоставления с образцом, то вы можете использовать что-то вроде ^(.+)([^\]+)$
, чтобы сопоставить разбиение строки на две части, каждая из которых будетбыть сохраненным как другой результат для группы совпадений.
Примечание: я не уверен, на что похож движок регулярных выражений Delphi, поэтому вам может понадобиться выйти за скобки, чтобы они работали как разделители групп.