regexp:Groups有什么用,如何在ballerina regexp中访问它?

oxf4rvwz  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(89)

我需要知道regexp:Groups对象的用例是什么?

brtdzjyr

brtdzjyr1#

当我们需要提取匹配字符串的特定部分时,我们需要捕获组。通过将正则表达式模式的一部分括在括号中,它形成了一个捕获组。在ballerina regexp包中定义的Groups类型有助于提取这些特定部分。

public type Groups readonly & [Span, Span?...];

字符串
Groups是readonly和Span对象列表之间的交集。列表的第0个成员表示完整正则表达式模式的匹配子字符串。当i>1时,第i个索引成员将导致与第i个捕获组匹配的子字符串。
假设你需要匹配一个字符串到日期模式,如DD-MM-YYYY。你需要提取日期,月份和年份值。在这种情况下,你可以使用捕获组来提取这些特定的值。下面的芭蕾舞演员代码将帮助你进一步理解它。

import ballerina/io;
import ballerina/lang.regexp;

public function main() {
    string date = "13-11-2023";
    regexp:Groups? result = re `(\d{2})-(\d{2})-(\d{4})`.findGroups(date);
    if result is regexp:Groups {
        io:println(result[0].substring()); // 13-11-2023

        regexp:Span? day = result[1];
        if day !is () {
            io:println(day.substring()); // 13
        }
        
        regexp:Span? month = result[2];
        if month !is () {
            io:println(month.substring()); // 11
        }

        regexp:Span? year = result[3];
        if year !is () {
            io:println(year.substring()); // 2023
        }
    }
}

相关问题