3

如何在Smart Mobile Studio中使用正则表达式?例如,我如何在 Object Pascal 中编写以下示例?

var re = /\w+\s/g;  
var str = "fee fi fo fum";  
var myArray = str.match(re);  
console.log(myArray);
4

1 回答 1

8

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

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

re := TW3RegEx.Create('\w+\s', 'g');

内置字符串对象不支持正则表达式匹配。为了简化使用,该w3regex单元实现了字符串助手,将匹配、替换、搜索和拆分方法引入字符串对象。

您的代码的直接翻译将是

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

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

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

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

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

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

于 2012-05-16T16:23:57.557 回答