Latest post of the previous page:
Хотя нет, лучше сделать GetLastError(...), тогда не только от компиляции можно будет получать диагностику.Замена в редакторе: использование именованных/нумерованных групп
- HaRT
- Moderator
- Posts: 11359
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 260 times
- Been thanked: 405 times
Замена в редакторе: использование именованных/нумерованных групп
Тогда нужно не забыть аккуратно обойтись с многопоточностью. Например, чтобы этот самый last error поддерживался в каждом потоке отдельно.
А вообще какие у нас сейчас есть имеющиеся способы диагностики в FAR API? (Просто я его недостаточно хорошо знаю.)
Фар есть инструмент, а не нянька. © 2009 DrKnS
Замена в редакторе: использование именованных/нумерованных групп
Теперь это RECTL_GETSTATUS.
Статус свой у каждого инстанса созданного RECTL_CREATE.
Просто не используйте один инстанс в нескольких потоках.
Статус свой у каждого инстанса созданного RECTL_CREATE.
Просто не используйте один инстанс в нескольких потоках.
Замена в редакторе: использование именованных/нумерованных групп
Ещё несколько моментов.
- (?<name>...) более стандартный вариант чем (?{name}...), как минимум надо добавить, можно ещё и (?'name'...)
- Относительные backreference \-n \{-n},
\-1== старшая известная группа в текущей позиции - \g{name} тоже более известен чем \p{name}, для совместимости опять же можно оба варианта принимать
- Вообще любые варианты backreference с
gдопустимы: \g1 \g{1} \g-1 \g{-1} \g{name}
(можно ещё и $g{...}, но лучше $+{...} ) - \x.... где от 1 до 4 hex-цифр, можно дополнить \x{...}, цифр может быть больше чем 4, в этом случае надо делать суррогатную пару.
Last edited by 2useven10 on Mon 10 Nov, 2025 22:09, edited 3 times in total.
Замена в редакторе: использование именованных/нумерованных групп
В старой дискуссии viewtopic.php?p=134283#p134283 Shmuel, зря продавил DrKnS.
Интеллект в определении количества цифр в \123 или \144 в номере группы - стандартное поведение perl. Если групп всего 5 -- надо считать оба варианта ссылкой на первую группу и двумя цифрами после этого.
Интеллект в определении количества цифр в \123 или \144 в номере группы - стандартное поведение perl. Если групп всего 5 -- надо считать оба варианта ссылкой на первую группу и двумя цифрами после этого.
Last edited by 2useven10 on Thu 06 Nov, 2025 14:53, edited 5 times in total.
-
Shmuel
- Posts: 7108
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 47 times
- Been thanked: 605 times
Замена в редакторе: использование именованных/нумерованных групп
Не проверял perl, но даже если так, то это неправильно.2useven10 wrote: Thu 06 Nov, 2025 11:27 Интеллект с определении сколько цифр в \123 или \144 используется в номере группы - стандартное поведение perl.
Представьте, что используется регулярное выражение поиска с 12 группами.
В выражении замены \13 (или $13, с perl не знаком).
Следовательно в замене будет использована группа 1 (т.к. 13 > 12).
Но вот регулярное выражение поиска расширили ещё одной группой, т.е. их стало 13.
Получите сюрприз - существующая замена сломалась, вместо 1-й группы стала браться 13-я.
Замена в редакторе: использование именованных/нумерованных групп
Это наследие из тех времён когда \{n} (или \g{n}, ${n} ...) в perl не было.
Когда есть способ управлять границей явно это несущественно (не призываю сейчас восстанавливать интеллект). Но на момент дискуссии в far regex явного способа не было, платой за логичность/правильность была невозможность ограничить число цифр в номере группы.
Когда есть способ управлять границей явно это несущественно (не призываю сейчас восстанавливать интеллект). Но на момент дискуссии в far regex явного способа не было, платой за логичность/правильность была невозможность ограничить число цифр в номере группы.
Last edited by 2useven10 on Mon 10 Nov, 2025 22:07, edited 5 times in total.
-
Yegor
- Posts: 1469
- Joined: Mon 04 Apr, 2005 13:41
- Location: San Ramon, CA / Kharkov, UA
- Has thanked: 51 times
- Been thanked: 84 times
Замена в редакторе: использование именованных/нумерованных групп
А почему бы вообще не перейти на какой-нибудь PCRE (из коробки)?
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Замена в редакторе: использование именованных/нумерованных групп
6592, вроде всё упомянутое сделал.
Осталось понять - нужны ли
\Escaped символы в замене?И надо ли саму замену делать доступной через RegExpCpntrol?
В принципе замену можно делать и без этого (самостоятельно) - вся информация есть в результатах компиляции и мэтчинга.
Last edited by 2useven10 on Mon 10 Nov, 2025 12:47, edited 1 time in total.
Замена в редакторе: использование именованных/нумерованных групп
Пришлось немного откатить изменения.
\{num/name} и \-n нельзя использовать для backreference,
они уже используются для экранирования '{' и '-' чтобы отключить quantifier {n[,m]} & range [b-e] режим.
Last edited by 2useven10 on Tue 11 Nov, 2025 02:03, edited 1 time in total.