【问题标题】:Get only the currency symbol with a regular expression in Dart在 Dart 中只获取带有正则表达式的货币符号
【发布时间】:2023-03-31 19:25:01
【问题描述】:

我正在尝试使用 正则表达式从 Dart 中的 String 获取货币符号:

void main() {
  const String string = '€ 1,500.50';
  final RegExp regExp = RegExp(r'([\\p{Sc}])', unicode: true);
  final Iterable<Match> matches = regExp.allMatches(string);

  final onlyCurrency = StringBuffer();
  for (final Match match in matches) {
    onlyCurrency.write(match.group(0));
  }
  
  print(onlyCurrency);
}

但这不起作用。如何在 Dart 中使用正则表达式仅获取货币符号(无论它是什么)?

非常感谢!

【问题讨论】:

    标签: regex dart currency


    【解决方案1】:

    您需要删除字符类 - 它是多余的 - 并使用 \p{Sc},因为您在原始字符串文字中定义正则表达式。

    解决办法是

    void main() {
      const String string = '€ 1,500.50';
      final RegExp regExp = RegExp(r'\p{Sc}', unicode: true);
      final Iterable<Match> matches = regExp.allMatches(string);
    
      final onlyCurrency = StringBuffer();
      for (final Match match in matches) {
        onlyCurrency.write(match.group(0));
      }
      
      print(onlyCurrency);
    }
    

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多