15. juli 2007 - 13:03
Der er
23 kommentarer og 1 løsning
RegExp tal efterfylgt af , eller ingenting
Hejsa Jeg har en kommasepereret streng 12,0,59,5 Det jeg gerne vil lave, er et tjek på om fx 1 er med som selvstændig tal. I dette tilfælde er det altså false da 1 ikke er med som selvstændig tal. Det er altså ikke nok at det indgår i 12. //eksempel hvor der tjekkes på om 1 er med som selvstændig tal [0-9,]*1[0-9,]* Det virker ikke, den giver true da den åbenbart kun tjekker om 1 indgår i strengen. Er problemet til at forstå og hvordan løses det?
Annonceindlæg fra Thales
Prøv med: (^|,)1(,|$) Alternativt kan du jo splitte strengen ved kommerne og løbe delstrengene igennem for at se om en af dem er "1".
Det betyder ELLER. (^|,) betyder derfor "i starten af strengen" (^) ELLER "et komma".
erikjacobsen> Det var også mit første bud, men den virker bare ikke korrekt i sammenhængen. Godt nok har jeg ikke direkte afprøvet den i PHP, men i C#. Så muligvis kan jeg tage fejl.
Det gør den nu ikke: static void Main(string[] args) { List<string> inputs = new List<string>(); inputs.Add("1,2,33"); inputs.Add("2,1,33"); inputs.Add("2,33,1"); inputs.Add("2,11,33"); inputs.Add("1"); inputs.Add("11"); inputs.Add("1,1"); inputs.Add("12,0,59,5"); foreach (string input in inputs) { Console.WriteLine("{0} - {1}", Test(input), input); } } static bool Test(string input) { Regex re = new Regex("\b1\b"); return re.IsMatch(input); }
Nej, selvfølgelig ikke. Et lille vink: @
15. juli 2007 - 17:47
#10
Doh :^)
15. juli 2007 - 17:50
#11
Hmm, men spørgeren bruger vist ASP/VBScript
15. juli 2007 - 17:52
#12
...men det burde også være \b :)
15. juli 2007 - 20:01
#13
Det er godt med jer :o) Kan jeg få et svar? Mange tak for jeres hjælp! :o)
15. juli 2007 - 20:03
#14
Står over på denne jer - erikjacobsen's er den mest elegante løsning på problemet. :^)
15. juli 2007 - 20:05
#15
Iøvrigt, hvis du ikke har gennemskuet hvorfor din oprindelige [0-9,]*1[0-9,]* ikke virker, så skyldes det simpelhen at del-ledet 1[0-9,]* matcher: 1 12 13, 1, og en masse mere. Du får altså en masse falske hits. :^)
15. juli 2007 - 20:09
#16
De virker fint begge 2 :0) Inden jeg oprettede spørgsmålet havde jeg forsøgt med \D1\D men det virkede ikke, hvorfor kan jeg ikke lige gennemskue...
15. juli 2007 - 20:11
#17
By the way: det er ASP/VBScript :o)
15. juli 2007 - 20:13
#18
\D matcher ikke starten af en streng - det gør \b derimod.
15. juli 2007 - 20:19
#19
:o)
15. juli 2007 - 20:25
#20
Ingen point til mig, tak tak.
15. juli 2007 - 20:47
#21
Hmmm... --> nielle?
15. juli 2007 - 20:49
#22
Stadigvæk, nej tak. Smid du bare selv et svar og tag dine point tilbage. :^)
23. august 2007 - 08:29
#23
Husk at lukke dette spørgsmål. :^)
23. august 2007 - 18:22
#24
Lukker
Kurser inden for grundlæggende programmering