#regex #dart #currency
Вопрос:
Я пытаюсь получить символ валюты из String
Dart, используя регулярное выражение:
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?
Большое спасибо!
Ответ №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);
}
Комментарии:
1. Большое спасибо!