如果我有一个像这样的字符串:
final myFancyCodez = "AA-BB.CC_DD.EE";
Run Code Online (Sandbox Code Playgroud)
如何将其拆分为多个分隔符?
expect(fancy.multiSplit( ["-", "."] ), ["AA", "BB", "CC_DD", "EE"] );
expect(fancy.multiSplit( [] ), ["AA-BB.CC_DD.EE"] );
expect(fancy.multiSplit( ['_'] ), ["AA-BB.CC", "DD.EE"] );
Run Code Online (Sandbox Code Playgroud)
我个人会使用类似的方法,而不是将分隔符组合成单个正则表达式并使用以下split方法:
import 'package:test/test.dart';
void main() {
const fancy = "AA-BB.CC_DD.EE";
test('Some tests', () {
expect(fancy.multiSplit(["-", "."]), ["AA", "BB", "CC_DD", "EE"]);
expect(fancy.multiSplit([]), ["AA-BB.CC_DD.EE"]);
expect(fancy.multiSplit(['_']), ["AA-BB.CC", "DD.EE"]);
});
}
extension UtilExtensions on String {
List<String> multiSplit(Iterable<String> delimeters) => delimeters.isEmpty
? [this]
: this.split(RegExp(delimeters.map(RegExp.escape).join('|')));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
891 次 |
| 最近记录: |