webForumDet fria alternativet

RegExp för inledande siffror

.NET

6 svar · 2 219 visningar · startad av spelevinken

Medlem sedan feb. 20114 inlägg
Frågan#1

Hejsan!

Jag har ett problem som jag inte finner en lösning på.

Jag behöver plocka ut x antal siffror som inleder en sträng,
strängen kan se ut så här: 123, bla bla bla, 2011-02-16 kl. 20.00

Det jag vill göra är alltså att plocka bort allt utom 123

För tydlighetens skull kan jag berätta att jag kodar en webbapplikation i asp.net med c# som codebehind.

Någon som kan hjälpa?
Tack på förhand!

Medlem sedan juni 20014 290 inlägg
#2

Det reguljära utrycket blir så här:

^(\d+?)
Medlem sedan feb. 20114 inlägg
#3

Tack för förslaget, men jag får det ändå inte att fungera

Så här ser min kod ut:

        string GetInitialNumbers = Regex.Replace(GetSelect, "\[^0-9\]", "");

Felet är ju att ALLA siffror i strängen följer med.

Jag gör antagligen ett "klantfel" när jag använder "^(\d+?)" eftersom jag får ett felmeddelande att \ inte är tillåtet.

Medlem sedan juni 20019 519 inlägg
#4

[] och () är inte samma sak

[^0-9] säger att den skall hitta alla tecken som inte är ett tal.

@"^(\d+?)"

skall du skriva så är första gruppen det tal du är ute efter.

Medlem sedan feb. 20114 inlägg
#5

Detta var klurigt!

Därför kommer nästa nybörjarfråga

Hur implementerar jag

@"^(\d+?)"

i projektet? Jag ska bara använda "Replace" en gång och behöver därför ingen klass.

Medlem sedan juni 20019 519 inlägg
#6

Fast det är ju inte en replace du vill köra, du vill ju få ut matchningen

Regex regexObj = new Regex(@"^(\d+?)", RegexOptions.Singleline | RegexOptions.IgnoreCase);
//regexObj.Match(subjectString).Groups[1].Value;
Medlem sedan feb. 20114 inlägg
#7

Jag har löst problemet med hjälp av sista svaret. Tacktack!

853 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
709 ms — ändringar (db)