我如何在 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
单元实现了字符串助手,它向字符串对象引入了 Match、Replace、Search 和 Split 方法。
您的代码的直接翻译是
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');
在这种情况下,字符串文字周围需要括号。
在安装的 RegExDemo 程序中记录了在 SmartMS 中使用正则表达式的许多方法。
关于javascript - Smart Mobile Studio 中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10621890/