Регулярные выражения в 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, которая является частью установки.

Другие вопросы по тегам