Без примера того, как устроена ваша строка, трудно сказать, что или как мы можем избежать определенных шаблонов. Это работает, пока ваши Строки всегда имеют формат Letters.numbers (любое количество букв, затем точка, затем любое количество чисел)
String x = 'Rs.499 + applicable taxes';
String y = ' asdhui Euro.3243 + applicable taxes';
final RegExp firstRegExp = RegExp('[a-zA-Z]+(\.[0-9]+)');
final RegExp example = RegExp(r'\w+(\.\d+)'); //this is basically the same that the one above, but also check for numbers before the dot
//consider static final RegExp to avoid creating a new instance every time a value is checked
print(firstRegExp.stringMatch(x));
print(example.stringMatch(x));
print(example.stringMatch(y));
for (var t in creditcards) {
print(example.stringMatch(t['firstyear'].toString()));
}
Проверка регулярного выражения на шаблон [a-zA- Z], что означает любую букву, + соответствует предыдущему один или несколько раз (предыдущий означает, что он будет соответствовать одной или нескольким буквам, но не пробелам, табуляциям или любому специальному символу), (. [0-9] +). проверяет наличие точки (\ используется, потому что. - это специальный символ в regExp, и вы хотите явно искать точку), [0-9] + проверяет одно или несколько чисел после точки
RegExp равно используется для проверки шаблонов, подробнее см. в regExp Dart и несколько примеров о специальных символах в RegExp