Wat is een reguliere expressie die overeenkomt met een tekenreeks die alleen de cijfers 0 tot en met 9, een komma en een puntkomma bevat? Ik wil het als volgt in Java gebruiken:
word.matches("^[1-9,;]$") //Or something like that...
Ik ben nieuw in reguliere expressies.
Antwoord 1, autoriteit 100%
Je hebt het bijna, je hebt gewoon 0 weggelaten en de kwantor vergeten.
word.matches("^[0-9,;]+$")
Antwoord 2, autoriteit 50%
Je bent er voor 90%.
^[0-9,;]+$
Beginn met de karaat ^
geeft een begin van een regel aan.
De [
geeft een tekenset aan
De 0-9
geeft de tekens 0 tot en met 9 aan, de komma ,
geeft een komma aan en de puntkomma geeft een ;
aan.
De afsluitende ]
geeft het einde van de tekenset aan.
De plus +
geeft aan dat een of meer van het “vorige item” aanwezig moet zijn. In dit geval betekent dit dat u een of meer van de tekens in de eerder gedeclareerde tekenset moet hebben.
De dollar $
geeft het einde van de regel aan.
Antwoord 3, autoriteit 7%
Probeer word.matches("^[0-9,;]+$");
Antwoord 4, autoriteit 5%
word.matches("^[0-9,;]+$");
je was er bijna
Antwoord 5, autoriteit 2%
Je huidige regex komt maar met 1 teken overeen. je hebt * (inclusief lege tekenreeks) of + (minstens één) nodig om meerdere tekens en cijfers te matchen, heb een sneltoets: \d (nodig \\ in een tekenreeks).
word.matches("^[\\d,;]+$")
De Pattern-documentatie is redelijk goed: http://download.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html
U kunt uw regexps ook online uitproberen op:
http://www.regexplanet.com/simple/index.html
Antwoord 6
boolean foundMatch = Pattern.matches("[0-9,;]+", "131;23,87");