Регулярний вираз для алфавітно-цифрових символів і підкреслень

Я хотів би мати регулярний вираз, який перевіряє, чи містить рядок тільки великі та малі літери, цифри та підкреслення.

Гм... питання: Чи повинен він мати хоча б один символ чи ні? Чи може це бути порожній рядок?

^[A-Za-z0-9_]+$

Достатньо хоча б однієї великої чи малої літери або символу підкреслення. Якщо він може мати нульову довжину, то просто замініть + на *.

^[A-Za-z0-9_]*$

Редагувати:

Якщо потрібно включити діакритичні знаки (наприклад, cedilla - ç), тоді вам потрібно використовувати слово символ, яке робить те ж саме, що і вище, але включає діакритичні знаки:

^\w+$

Або

^\w*$
Коментарі (5)

Як щодо:

^([A-Za-z]|[0-9]|_)+$

...якщо хочеш бути відвертим, або:

^\w+$

...якщо ви віддаєте перевагу лаконічності (синтаксис Perl).

Коментарі (0)

Наступний регекс відповідає алфавітно-цифровим символам і символу підкреслення:

^[a-zA-Z0-9_]+$

Наприклад, у мові Perl:

#!/usr/bin/perl -w

my $arg1 = $ARGV[0];

# check that the string contains *only* one or more alphanumeric chars or underscores
if ($arg1 !~ /^[a-zA-Z0-9_]+$/) {
  print "Failed.\n";
} else {
    print "Success.\n";
}
Коментарі (9)