如何在Smart Mobile Studio中使用正则表达式?例如,我如何在 Object Pascal 中编写以下示例?
var re = /\w+\s/g;
var str = "fee fi fo fum";
var myArray = str.match(re);
console.log(myArray);
如何在Smart Mobile Studio中使用正则表达式?例如,我如何在 Object Pascal 中编写以下示例?
var re = /\w+\s/g;
var str = "fee fi fo fum";
var myArray = str.match(re);
console.log(myArray);
在 SmartMS 中,正则表达式是在 w3regex 单元中实现的,因此您首先要添加w3regex
到uses
列表中。
不支持“短”形式(例如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 程序中,该程序是安装的一部分。