我有一串数字,我需要使用正则表达式替换它的前 N 位数字。
我尝试了以下代码,但它不起作用:
String hideLastFourCharacters(String s){
final result = s.replaceAll(r"\\d{2}", '-');
return result;
}
Run Code Online (Sandbox Code Playgroud)
要仅替换给定数量的数字,您可以使用replaceFirst
方法:
var re = RegExp(r'\d{2}'); // replace two digits
print('123456789'.replaceFirst(re, '--')); // --3456789
Run Code Online (Sandbox Code Playgroud)
如果您需要替换除最后一个n
给定数字之外的所有数字,您可以使用replaceAll
负前瞻:
var re = RegExp(r'\d(?!\d{0,2}$)'); // keep last 3 digits
print('123456789'.replaceAll(re, '-')); // ------789
Run Code Online (Sandbox Code Playgroud)
负向先行排除末尾(?!
有 n-1 或更少数字的匹配项。\d{0,2}
$)
归档时间: |
|
查看次数: |
4601 次 |
最近记录: |