Регулярные выражения в Smart Mobile Studio
Как мне работать с регулярными выражениями в Smart Mobile Studio? Например, как мне написать следующий пример в Object Pascal?
var re = /\w+\s/g;
var str = "fee fi fo fum";
var myArray = str.match(re);
console.log(myArray);
1 ответ
В SmartMS регулярные выражения реализованы в модуле w3regex, поэтому вы начнете с добавления w3regex
к uses
список.
"Короткая" форма (например, var re = /\w+\s/g;
от вопроса) не поддерживается. Чтобы создать объект регулярного выражения, вы должны использовать конструктор.
re := TW3RegEx.Create('\w+\s', 'g');
Встроенный строковый объект не поддерживает сопоставление регулярному выражению. Чтобы упростить использование, w3regex
В модуле реализованы строковые помощники, которые вводят методы Match, Replace, Search и Split в строковый объект.
Прямой перевод вашего кода будет
var re := TW3Regex.Create('\w+\s', 'g');
var str := 'fee fi fo fum';
var myArray := str.Match(re);
(Что касается ведения журналов, я не знаю, как в данный момент красиво записать строковый массив в консоль, но это не было частью вопроса.)
w3regex реализует несколько перегрузок для метода Match, который создаст объект regex на лету для вас. Поскольку вы также можете применять вспомогательные методы к строковому литералу, вы можете сократить код до:
var myArray: TStrArray = ('fee fi fo fum').Match('\w+\s', 'g');
В этом случае требуются скобки вокруг строкового литерала.
Многие способы использования регулярных выражений в SmartMS описаны в программе RegExDemo, которая является частью установки.