Vraag Alleen strings aanpassen die geen punt bevatten (met behulp van reguliere expressies)


Ik probeer een regexp te vinden die alleen overeenkomt met strings als ze niet doen een punt bevatten, b.v. het komt overeen stackoverflow, 42abc47 of a-bc-31_4 maar komt niet overeen: .swp, stackoverflow of test..


18
2018-01-20 00:38


oorsprong


antwoorden:


^[^.]*$

of

^[^.]+$

Afhankelijk van of u lege tekenreeks wilt matchen. Sommige toepassingen leveren impliciet de ^ en $, in welk geval ze onnodig zouden zijn. Bijvoorbeeld: de HTML5 input element pattern attribuut.

U vindt veel meer geweldige informatie over de regular-expressions.info plaats.


32
2018-01-20 00:41



Gebruik een regex zonder punten:

^[^.]*$

Dat is nul of meer tekens die geen punten in de hele reeks zijn. Sommige regex-bibliotheken die ik in het verleden heb gebruikt, hadden manieren om een exacte overeenkomst. In dat geval heeft u de ^ en $. Het hebben van een taal in uw vraag zou helpen.

Trouwens, dat doe je niet hebben om een ​​regex te gebruiken. In Java zou je kunnen zeggen:

!someString.contains(".");

4
2018-01-20 00:41



Validatie vereist: het eerste teken moet Letter zijn en vervolgens Dot '.' is niet toegestaan ​​in Target String.

// De invoerreeks die we gebruiken             string input = "1A_aaA";

        // The regular expression we use to match
        Regex r1 = new Regex("^[A-Za-z][^.]*$"); //[\t\0x0020] tab and spaces.

        // Match the input and write results
        Match match = r1.Match(input);
        if (match.Success)
        {
            Console.WriteLine("Valid: {0}", match.Value);

        }
        else
        {
            Console.WriteLine("Not Match");
        }

1
2018-02-22 11:54