Smart Mobile Studio中的正则表达式

gab*_*abr 3 javascript regex delphi 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);
Run Code Online (Sandbox Code Playgroud)

gab*_*abr 8

在SmartMS中,正则表达式在w3regex单元中实现,因此您首先要添加w3regexuses列表中.

var re = /\w+\s/g;不支持"短"形式(例如来自问题).要创建正则表达式对象,必须使用构造函数.

re := TW3RegEx.Create('\w+\s', 'g');
Run Code Online (Sandbox Code Playgroud)

内置字符串对象不支持正则表达式匹配.为了简化使用,该w3regex单元实现了字符串帮助程序,它将Match,Replace,Search和Split方法引入字符串对象.

直接翻译您的代码即可

var re := TW3Regex.Create('\w+\s', 'g');
var str := 'fee fi fo fum';
var myArray := str.Match(re);
Run Code Online (Sandbox Code Playgroud)

(至于日志记录,我目前还不知道如何很好地将字符串数组写入控制台,但这不是问题的一部分.)

w3regex为Match方法实现了一些重载,它将为您动态创建正则表达式对象.由于您还可以将辅助方法应用于字符串文字,因此可以将代码缩短为:

var myArray: TStrArray = ('fee fi fo fum').Match('\w+\s', 'g');
Run Code Online (Sandbox Code Playgroud)

在这种情况下,需要在字符串文字周围加括号.

RegExDemo程序中记录了许多在SmartMS中使用正则表达式的方法,这是安装的一部分.