View Issue Details

IDProjectCategoryView StatusLast Update
0003613Far ManagerMacropublic2018-06-04 20:55
Reporterlkintact Assigned Toshmuel  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionno change required 
Summary0003613: Отличие работы regex.gsub() от string.gsub()
DescriptionИз описания regex.gsub() в Encyclopedia/luafar_manual.chm понял, что она должна работать аналогично ф-ции Lua string.gsub(), но с некоторыми дополнениями. Пробую первый пример использования string.gsub(), данный на www.lua.org/manual/5.1/manual.html#pdf-string.gsub, из коммандной строки Far:
lua:print(string.gsub("hello world", "(%w+)", "%1 %1")), результат получаю указанный в примере: "hello hello world world".
Пробую аналогично с regex.gsub():
lua:print(regex.gsub("hello world", "(%w+)", "%1 %1")), результат отличается: "hello world".

Far build 5225 x86.
TagsNo tags attached.
Build0

Activities

shmuel

2018-06-04 20:27

developer   bugnote:0016132

Функции библиотеки regex имеют много общего с одноимёнными функциями библиотеки string, но есть существенные различия:
1. Синтаксис. Библиотека regex работает с синтаксисом регулярных выражений Фар (есть описание в справке Фар), в частности, образец поиска использует \ там где библиотека string использует %
2. Регулярные выражения Фар (и библиотеки regex) мощнее выражений библиотеки string, то есть способны решать более сложные задачи.

Ваш пример с использованием библиотеки regex должен выглядеть так:
lua:print(regex.gsub("hello world", "(\\w+)", "%1 %1"))

lkintact

2018-06-04 20:40

reporter   bugnote:0016133

Понял, спасибо за разъяснение..

Issue History

Date Modified Username Field Change
2018-06-04 20:10 lkintact New Issue
2018-06-04 20:27 shmuel Note Added: 0016132
2018-06-04 20:40 lkintact Note Added: 0016133
2018-06-04 20:55 shmuel Assigned To => shmuel
2018-06-04 20:55 shmuel Status new => closed
2018-06-04 20:55 shmuel Resolution open => no change required
2018-06-04 20:55 shmuel Build => 0