extractPrices static method
Extract prices (for e-commerce sites)
Implementation
static List<String> extractPrices(String html) {
final prices = <String>[];
final patterns = [
r'\$\s*(\d+(?:,\d{3})*(?:\.\d{2})?)', // $123.45, $1,234.56
r'(\d+(?:,\d{3})*(?:\.\d{2})?)\s*USD', // 123.45 USD
r'Price:\s*\$?(\d+(?:,\d{3})*(?:\.\d{2})?)', // Price: $123.45
r'<[^>]*class=[\"\x27][^\"\x27]*price[^\"\x27]*[\"\x27][^>]*>[^\\$]*\\\$([^<]*)<', // Class-based price
];
for (final pattern in patterns) {
final matches = RegExp(pattern, caseSensitive: false).allMatches(html);
for (final match in matches) {
final price = match.group(1);
if (price != null && price.isNotEmpty) {
prices.add('\$${price.trim()}');
}
}
}
return prices.toSet().toList();
}