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
}
}
}
1条答案
按热度按时间brtdzjyr1#
当我们需要提取匹配字符串的特定部分时,我们需要捕获组。通过将正则表达式模式的一部分括在括号中,它形成了一个捕获组。在ballerina
regexp
包中定义的Groups
类型有助于提取这些特定部分。字符串
Groups
是readonly和Span
对象列表之间的交集。列表的第0个成员表示完整正则表达式模式的匹配子字符串。当i>1时,第i个索引成员将导致与第i个捕获组匹配的子字符串。假设你需要匹配一个字符串到日期模式,如
DD-MM-YYYY
。你需要提取日期,月份和年份值。在这种情况下,你可以使用捕获组来提取这些特定的值。下面的芭蕾舞演员代码将帮助你进一步理解它。型