Avatar billede marduk666 Nybegynder
23. august 2003 - 15:01 Der er 16 kommentarer og
1 løsning

check om variabel indeholder

Hvordan checker man om en variabel indeholder a-z evt 0-9 og æøå?
Avatar billede medions Nybegynder
23. august 2003 - 15:03 #1
Det gør ud med Reg. Exp!

//>Rune
Avatar billede marduk666 Nybegynder
23. august 2003 - 15:05 #2
Kan du give et eksempel?
Avatar billede arne_v Ekspert
23. august 2003 - 15:16 #3
Hvis det er så simpelt som du beskriver kan IndexOfAny bruges.

Eksempel:

using System;

class MainClass
{
    public static void Main(string[] args)
    {
        Console.WriteLine(HasABC("Arne"));
        Console.WriteLine(HasABC("V"));
    }
    private static char[] xc = { 'A', 'B', 'C' };
    public static bool HasABC(string s)
    {
        return (s.IndexOfAny(xc) >= 0);
    }
}

Hvis det er mere komplekst hænger du nok på regular expressions.
Avatar billede arne_v Ekspert
23. august 2003 - 15:27 #4
Samme kode også med regular expression:

using System;
using System.Text.RegularExpressions;

class MainClass
{
    public static void Main(string[] args)
    {
        Console.WriteLine(HasABC("Arne") + " " + HasABCadv("Arne"));
        Console.WriteLine(HasABC("V") + " " + HasABCadv("V"));
    }
    private static char[] xc = { 'A', 'B', 'C' };
    public static bool HasABC(string s)
    {
        return (s.IndexOfAny(xc) >= 0);
    }
    public static bool HasABCadv(string s) {
        return Regex.Match(s, "[A-C]").Success;
    }
}
Avatar billede marduk666 Nybegynder
23. august 2003 - 15:48 #5
Takker lige hvad jeg skulle bruge!

Kender du evt. en webside hvor man kan se alle de der kommandoer som Regex.Match?
Avatar billede arne_v Ekspert
23. august 2003 - 15:52 #6
Når du installerer .NET SDK får du en online dokumentation som indeholder
al den information.

[og ja der er så mange pakker og klasser, at det kan være svært at overskue dem]
Avatar billede marduk666 Nybegynder
23. august 2003 - 15:58 #7
Okay tak endnu en gang :-)
Avatar billede arne_v Ekspert
23. august 2003 - 16:06 #8
For at finde den her:

Microsoft .NET Framework SDK 1.1
Documentation
.NET Framework SDK
Referemce
Class Library
System.Text.RegularExpressions
Regex Class
Methods
Match
Avatar billede marduk666 Nybegynder
23. august 2003 - 18:11 #9
Jeg har lige fået en andet problem. Hvis variablen er f.eks. "a" så bliver den ikke accepteret men hvis den er f.eks. "3a" så bliver den accepteret.

if ( Regex.Match(textBox.Text, "[0-9]").Success )
{
Avatar billede arne_v Ekspert
23. august 2003 - 18:13 #10
3a indholder et af tegnene 0-9 og derfor returnerer den true.

Skal du have et test på om det kun er tegenene 0-9 ?
Avatar billede marduk666 Nybegynder
23. august 2003 - 18:17 #11
Ja
Avatar billede arne_v Ekspert
23. august 2003 - 18:24 #12
OK - her er en udvidet version:

using System;
using System.Text.RegularExpressions;

class MainClass
{
    public static void Main(string[] args)
    {
        test("A");
        test("Arne");
        test("V");
        test("AB");
        test("VA");
    }
    private static void test(string s)
    {
        Console.WriteLine(s + " " + HasABC(s) + " " + HasABCregexp(s) + " " + IsAllABC(s));
    }
    private static char[] xc = { 'A', 'B', 'C' };
    public static bool HasABC(string s)
    {
        return (s.IndexOfAny(xc) >= 0);
    }
    public static bool HasABCregexp(string s) {
        return Regex.IsMatch(s, "[A-C]");
    }
    public static bool IsAllABC(string s)
    {
        return s.Equals(Regex.Match(s,"[A-C]*").Value);       
    }
}
Avatar billede arne_v Ekspert
23. august 2003 - 18:25 #13
Jeg bruger stadigvæk A-C, men det er jo nemt og rette til 0-9.

* betyder 0-mange
Avatar billede arne_v Ekspert
23. august 2003 - 18:27 #14
Ja - og så opdagede jeg at Match().Success kunne laves mere elegant
med IsMatch().
Avatar billede marduk666 Nybegynder
23. august 2003 - 18:53 #15
Yesh nu virker mit meget simple regneprogram som det skal :-)

evt. (* betyder 0-mange) ???
Avatar billede arne_v Ekspert
23. august 2003 - 19:12 #16
* betyder 0-mange forekomster af det i parenteserne.

+ betuder 1-mange.
Avatar billede marduk666 Nybegynder
23. august 2003 - 19:18 #17
Ahh på den måde..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester