@vidakm
Sorry, ali uopšte nisi u pravu jer nigde ne postoji nešto poput \A pa da string mora da počinje slovom ili brojem, kao što tvrdiš. Tačno je da taj regularni izraz traži samo jedno slovo, ali kada govorimo o stringu to znači da traži string u kome postoji makar jedno slovo (i to je "pisac hteo da kaže" mada mi je jasno da se u brzini nisam sasvim precizno izrazio).
Bojim se da ti ne razumeš baš sasvim kako RegEx rade, jer oni ne rade tako kako ti tvrdiš (tako kako ti tumačiš bi radio izraz \A[a-z].*[0-9]|\A[0-9].*[a-z]).
[a-z] znači "ispituj string sve dok ne naiđeš na nešto što je slovo" (\A[a-z] znači "počinje sa slovom"), .*[0-9] znači "teraj dalje sve dok postoji ma kakav znak koji nije CR posle koga sledi neka cifra".
Nije mi uopšte jasno šta ti znači "pokupiće prvi matchovani regularni izraz". Traženi uslov je da RegEx vrati TRUE ako string sadrži makar jedno slovo i makar jedan broj. Ovaj RegEx zadovoljava zadati uslov.
Uostalom, nema razloga da se nagađa, uzmi neki od standardnih test programa (poput The Regex Coach ili RegEx Buddy) pa proveri da li ovaj RegEx radi onako kako ja kažem ili onako kako ti tvrdiš da radi.
@TEP3A
Tvoj prvobitni uslov je bio da RegEx detektuje da li u stringu postoje istovremeno i slova i brojevi, nije se zahtevalo da ceo string mora biti matchovan. Ja se ograđujem utoliko što nemam pojma kako funkcionišu RegEx u Javi (ne postoji nikakva do kraja unificirana RegEx sintaksa i ovde se, sva je prilika, suočavamo upravo sa tim problemom).
No, ako ja nisam sasvim prolupao, sledeći RegEx bi morao da matchuje ceo string:
.*[a-zA-Z].*[0-9].*|.*[0-9].*[a-zA-Z].*