Я пытаюсь найти регулярное выражение, которое соответствует только строкам, если они не содержат точки, например. он соответствует stackoverflow, 42abc47 или a-bc-31_4, но не соответствует: .swp, stackoverflow или test..
Как совместить только строки, которые не содержат точки (с использованием регулярных выражений)
Ответ 1
^[^.]*$
или
^[^.]+$
В зависимости от того, хотите ли вы совместить пустую строку. Некоторые приложения могут неявно снабжать ^ и $, и в этом случае они не нужны. Например: атрибут HTML5 input pattern.
Вы можете найти гораздо более подробную информацию на сайте regular-expressions.info.
Ответ 2
Используйте регулярное выражение, которое не имеет точек:
^[^.]*$
Это ноль или более символов, которые не являются точками во всей строке. Некоторые библиотеки регулярных выражений, которые я использовал в прошлом, имели способы получения точного соответствия. В этом случае вам не нужны ^ и $. Наличие языка в вашем вопросе поможет.
Кстати, вам не нужно использовать регулярное выражение. В java вы можете сказать:
!someString.contains(".");
Ответ 3
Требуется проверка: первый символ должен быть буквой, а затем точкой. не допускается в целевой строке.
//Используемая строка ввода 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");
}