从 dart 中的字符串的开头和结尾修剪和删除特定字符

jer*_*use 6 dart flutter

我正在寻找类似于 pythonstrip函数的 Dart函数。仅从开头和结尾删除特定字符。

String str = "^&%.      , !@  Hello @World   , *%()@#$ "
String newStr = str.strip("#*)(@!,^&%.$ ");
Run Code Online (Sandbox Code Playgroud)

结果:

"Hello @World"
Run Code Online (Sandbox Code Playgroud)

Mob*_*ina 3

您可以使用正则表达式来查找包含符号的字符串的前导部分和尾随部分的长度。然后你可以使用索引创建一个子字符串:

String str = "^&%.  ^    , !@  Hello@ World   , *%()@#\$ ";
RegExp regex = new RegExp(r'[#*)(@!,^&%.$\s]+');
int leftIdx = regex.stringMatch(str).length;
int rightIdx = regex.stringMatch(str.substring(leftIdx).split('').reversed.join('')).length;
String newStr = str.substring(leftIdx, str.length - rightIdx);
Run Code Online (Sandbox Code Playgroud)

结果:

'Hello@ World'
Run Code Online (Sandbox Code Playgroud)

  • 正则表达式是有道理的。让我看看是否可以将其制作成通用函数。 (2认同)