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
ユニットは文字列オブジェクトに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');
この場合、文字列リテラルを括弧で囲む必要があります。
SmartMSで正規表現を使用する多くの方法は、インストールの一部であるRegExDemoプログラムに記載されています。