webForumDet fria alternativet

RegExp med enbart nummer och kommatecken

.NET

3 svar · 449 visningar · startad av lilja

Medlem sedan juli 20041 183 inlägg
Frågan#1

Äsh, jag stöter alltid på problem när jag ska göra något med Regular Expressions. Kan ni hjälpa mig?

Jag vill i C# kunna validera eller plocka ut enbart siffror och kommatecken ur en sträng.

"12,13,8,17,64,3,159" ska validera
"12,187,65,g,45y" ska inte validera alt plocka bort bokstäverna

Snälla, hur gör man? Jag är RegExp blind :bla

Medlem sedan juni 20019 519 inlägg
#2
"^[\d,]+$"

För att validera nummer och ,
Om du vill ersätta allt som inte är det så är mönstret:

"[^\d,]+"

och ersätt den med ""

resultString = Regex.Replace(subjectString, @"[^\d,]+", "", RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Multiline);
Medlem sedan juli 20041 183 inlägg
#3

Jag kom fram till denna. Jag tyckte första att vi hade lite annorlunda men men...

string regExPattern = @"^[0-9,]+$";
Regex validate = new Regex(regExPattern);
if (!validate.IsMatch(questionnaireIds)) {
    throw new ApplicationException("Only numbers and commas are accepted in the input parameter.");
}
Medlem sedan juni 20019 519 inlägg
#4

0-9 är "samma" sak som \d.
\d är a single digit 0..9

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
135 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)