[英]How to get delimiters after split by multiple delimiters?
I use this phones = value.split(RegExp(r":| |:| |)"));
我用这个phones = value.split(RegExp(r":| |:| |)"));
to split my phone numbers, so I got内線
, 7+90+21931465
and 070-2193-1465
from内線:7+90+21931465:070-2193-1465
, but I want to show them as 内線: 7+90+21931465 : 070-2193-1465 , how can I get array as内線
, :
, 7+90+21931465
, :
and 070-2193-1465
?拆分我的电话号码,所以我得到了内線
, 7+90+21931465
和070-2193-1465
来自内線:7+90+21931465:070-2193-1465
,但我想将它们显示为内线: 7+90+ 21931465 : 070-2193-1465 , 怎样才能得到数组为内線
, :
, 7+90+21931465
, :
和070-2193-1465
?
var value = '内線:7+90+21931465:070-2193-1465';
var regExp = RegExp(r'^(.+)(:|:)(.+)(:|:)(.+)$');
print(value);
var match = regExp.firstMatch(value);
var numGroups = match.groupCount;
var groups = match.groups(List<int>.generate(numGroups, (i) => i + 1));
print(groups.toString());
Another way:另一种方式:
var chesu = value.split(RegExp(r':|:'))..insert(1, ':')..insert(3, ':');
print(chesu);
Does this work for you:这对你有用吗:
void main() {
final input = "part1:part2;part3%part4";
final result = <String>[];
input.splitMapJoin(
RegExp(r":|;|%"),
onMatch: (match) {
result.add(match.group(0));
return "";
},
onNonMatch: (value) {
result.add(value);
return "";
},
);
print(result);
}
Output: Output:
[part1, :, part2, ;, part3, %, part4]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.