Я хотів би мати регулярний вираз, який перевіряє, чи містить рядок тільки великі та малі літери, цифри та підкреслення.
Гм... питання: Чи повинен він мати хоча б один символ чи ні? Чи може це бути порожній рядок?
^[A-Za-z0-9_]+$
Достатньо хоча б однієї великої чи малої літери або символу підкреслення. Якщо він може мати нульову довжину, то просто замініть + на *.
^[A-Za-z0-9_]*$
Редагувати:
Якщо потрібно включити діакритичні знаки (наприклад, cedilla - ç), тоді вам потрібно використовувати слово символ, яке робить те ж саме, що і вище, але включає діакритичні знаки:
^\w+$
Або
^\w*$
Як щодо:
^([A-Za-z]|[0-9]|_)+$
...якщо хочеш бути відвертим, або:
^\w+$
...якщо ви віддаєте перевагу лаконічності (синтаксис Perl).
Наступний регекс відповідає алфавітно-цифровим символам і символу підкреслення:
^[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";
}