我想从以下中提取数据
Periode Aantal uur Sv-loon
01-06-2019 t/m 30-06-2019 35 € 800,00
01-05-2019 t/m 31-05-2019 35 € 1.056,00
01-04-2019 t/m 30-04-2019 35 € 800,00
01-03-2019 t/m 31-03-2019 35 € 800,00
01-02-2019 t/m 28-02-2019 35 € 800,00
Datum: 06 augustus 2019
预期输出为:
01-06-2019 t/m 30-06-2019 35 € 800,00
01-05-2019 t/m 31-05-2019 35 € 1.056,00
01-04-2019 t/m 30-04-2019 35 € 800,00
01-03-2019 t/m 31-03-2019 35 € 800,00
01-02-2019 t/m 28-02-2019 35 € 800,00
检查我迄今为止尝试的示例
您可以使用
Sv-loons*([sS]*?)s*Datum:
请参阅regex演示详细信息:
Sv-loon
-文字字符串s*
-0个或更多空白([sS]*?)
-组1:任何0个或多个尽可能少的字符s*
-0个或更多空白Datum:
-文字字符串
参见Dart演示:
String txt = "Periode Aantal uur Sv-loonn01-06-2019 t/m 30-06-2019 35 € 800,00n01-05-2019 t/m 31-05-2019 35 € 1.056,00n01-04-2019 t/m 30-04-2019 35 € 800,00n01-03-2019 t/m 31-03-2019 35 € 800,00n01-02-2019 t/m 28-02-2019 35 € 800,00nDatum: 06 augustus 2019";
RegExp rx = RegExp(r'Sv-loons*([sS]*?)s*Datum:');
Match match = rx.firstMatch(txt);
if (match != null) {
print(match.group(1));
}
输出
01-06-2019 t/m 30-06-2019 35 € 800,00
01-05-2019 t/m 31-05-2019 35 € 1.056,00
01-04-2019 t/m 30-04-2019 35 € 800,00
01-03-2019 t/m 31-03-2019 35 € 800,00
01-02-2019 t/m 28-02-2019 35 € 800,00
仅提取日期:
void main() {
String inputString = "Your String 1/19/2023 9:29:11 AM";
RegExp dateRegex = new RegExp(r"(d{1,2}/d{1,2}/d{4})");
Iterable<RegExpMatch> matches = dateRegex.allMatches(inputString);
for (RegExpMatch m in matches) {
print(m.group(0));
}
}
这将输出:2023年1月19日
提取日期和时间:
void main() {
String inputString = "Your String 1/19/2023 9:29:11 AM";
RegExp dateTimeRegex = new RegExp(r"(d{1,2}/d{1,2}/d{4} d{1,2}:d{2}:d{2} [AP]M)");
Iterable<RegExpMatch> matches = dateTimeRegex.allMatches(inputString);
for (RegExpMatch m in matches) {
print(m.group(0));
}
}
这将输出:1/19/2023 9:29:11 AM
RegExp re = new RegExp("((?<=Sv-loon)([\S\s]*?)(?=Datum:))");
其中?=
是正向展望。