Подтвердить что ты не робот

Регулярное выражение для точного соответствия строки

Я хочу сопоставить два пароля с регулярным выражением. Например, у меня есть два входа "123456" и "1234567", тогда результат не должен совпадать (false). И когда я ввел "123456" и "123456", тогда результат должен совпадать (true).

Я не мог сделать выражение. Как мне это сделать?

4b9b3361

Ответ 1

если у вас есть пароль ввода в переменной, и вы хотите точно соответствовать 123456, тогда анкеры помогут вам:

/^123456$/

в perl тест для сопоставления пароля будет выглядеть как

print "MATCH_OK" if ($input_pass=~/^123456$/);

EDIT:

bart kiers прав, почему вы не используете для этого strcmp()? каждый язык имеет его по-своему.

как вторая мысль, вам может потребоваться более безопасный механизм аутентификации:)

Ответ 2

В ответе malfaux '^' и '$' используется для определения начала и конца текста.
Они обычно используются для определения начала и конца строки.
Однако в этом случае это может быть правильным.
Но если вы хотите совместить точное слово, более элегантным способом является использование '\ b'. В этом случае следующий шаблон будет соответствовать точной фразе '123456 '.

/\ b123456\Ь/

Ответ 3

(?<![\w\d])abc(?![\w\d])

это гарантирует, что вашему совпадению не предшествует какой-либо символ, номер или знак подчеркивания и не следует сразу по символу или номеру или подчеркиванию

поэтому он будет соответствовать "abc" в "abc" , "abc.", "abc" , но не "4abc", ни "abcde"

Ответ 4

Более прямым способом является проверка равенства

if string1 == string2
  puts "match"
else
  puts "not match"
end

однако, если вы действительно хотите придерживаться регулярного выражения,

string1 =~ /^123456$/

Ответ 5

Вы также можете попробовать добавить пространство в начале и конце ключевого слова: /\s+123456\s+/i.