Регулярное выражение для точного совпадения строки
Я хочу сопоставить два пароля с регулярным выражением. например, у меня есть два входа "123456" и "1234567", то результат должен быть не совпадать(false). И когда я ввел "123456 "и" 123456", то результат должен совпадать(true).
Я не мог сделать выражение. Может ли кто-нибудь помочь мне плз.
5 ответов:
Если у вас есть входной пароль в переменной, и вы хотите точно соответствовать 123456, то якоря помогут вам:
/^123456$/
в perl тест на соответствие пароля будет что-то вроде
print "MATCH_OK" if ($input_pass=~/^123456$/);
EDIT:
Барт kiers правильно Тхо, почему бы вам не использовать strcmp() для этого? каждый язык по-своему
как вторая мысль, вы можете рассмотреть более безопасный механизм аутентификации:)
в ответ малфо '^' и '$' используется для определения начала и конца текста.
они обычно используются для определения начала и конца строки.
однако это может быть правильным способом в этом случае.
но если вы хотите, чтобы соответствовать точное слово, более элегантный способ-использовать '\b'. В этом случае следующий шаблон будет соответствовать точной фразе'123456'./\b123456\b/
(?<![\w\d])abc(?![\w\d])
это гарантирует, что вашему совпадению не предшествует какой-либо символ, число или подчеркивание и не следует сразу за символом или числом или подчеркиванием
таким образом, он будет соответствовать "abc" в "abc", "abc.", "abc", но не" 4abc", ни"abcde"