Как сопоставить только строки, которые не содержат точку (с помощью регулярных выражений) - PullRequest
18 голосов
/ 20 января 2011

Я пытаюсь найти регулярное выражение, которое соответствует только строкам, если они не содержат точку, например. он соответствует stackoverflow, 42abc47 или a-bc-31_4, но не соответствует: .swp, stackoverflow или test..

Ответы [ 3 ]

35 голосов
/ 20 января 2011
^[^.]*$

или

^[^.]+$

В зависимости от того, хотите ли вы сопоставить пустую строку.Некоторые приложения могут неявно предоставлять ^ и $, и в этом случае они будут ненужными.Например: атрибут pattern элемента HTML5 input .

Вы можете найти намного больше полезной информации на сайте регулярные-выражения.info .

4 голосов
/ 20 января 2011

Используйте регулярное выражение, у которого нет точек:

^[^.]*$

Это ноль или более символов, которые не являются точками во всей строке. У некоторых библиотек регулярных выражений, которые я использовал в прошлом, были способы получить точное совпадение В этом случае вам не нужны ^ и $. Наличие языка в вашем вопросе поможет.

Кстати, у вас нет для использования регулярных выражений. В Java вы можете сказать:

!someString.contains(".");
1 голос
/ 22 февраля 2012

Требуется проверка: сначала символ должен быть буквой, а затем точкой '.'не допускается в Target 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");
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...