Я пытаюсь найти регулярное выражение, которое соответствует только строкам, если они не содержат точки, например. он соответствует 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");
}