ines, sprawdź te dwa:
Kod
if(preg_match('/^[0-9]{1,5}\.[0-9]{2}$/', $_POST['price']))
if(preg_match('/^[0-9]{1,5}\.[0-9]{2}\s*$/', $_POST['price']))
nait, napisałeś "czy występuje co najmniej jedno powtórzenie" - i podałeś zakresy a-z, A-Z, 0-9 (i znaki specjalne). Czy to, co rozumiesz przez "powtórzenie", to jest
1. wystąpienie dwóch DOWOLNYCH znaków z jednej grupy koło siebie
2. wystąpienie dwóch TAKICH SAMYCH znaków z jednej grupy obok siebie
Pytam, bo to nie jest to samo (ciąg znaków "aa" w haśle pasuje do obu rzeczy, ale "qw" przypasuje tylko do pierwszego warunku...
Co do samego pytania "czy da się jednym regexpem" - jakiś cień szansy (bardzo rozmazany) widzę, ale nawet jeśli by się dało, to samo wyrażenie będzie mega zagmatwane - imho lepiej wrzuć to w kilka wyrażeń, na pewno będzie czytelniejsze i łatwiejsze przy ewentualnych modyfikacjach.