Ответ:
Параметр pattern
, который вы передаете в .requireTextMatchesPattern(pattern)
, является регулярным выражением, а символ *
является квантификатором RegEx. При неправильном использовании шаблон будет недействительным и выдает ошибку.
Дополнительная информация:
Для регулярных выражений символ *
означает:
Ноль или более вхождений предыдущего элемента.
Например:
- Для выражения
stacko*verflow
будут соответствовать следующие строки: stackverflow
stackoverflow
stackooverflow
stackoooverflow
stackoooverflow
А и так далее, при условии, что строка начинается с stack
и заканчивается verflow
.
В примерах, которые вы предоставили в приведенных выше комментариях, у вас есть следующие регулярные выражения:
1:
WvGMkRIQf>|X2ANqg<SGu|j$aN6on**L|v5$N#z7dW!|XU5#5Ml&8Q|Bz%EzuWLiE|a&Cv!IE3E4|-IK4>#ljA8|5ytvZeRJLd|dAOe2L6-g7|P>1UQ<iMYO|yoCZrb7Tom|cuIfBUN%js|FfIq2ASpF0|gZDf8abN1p|mHV>swDHwR|rDgknKK3CS|<$dbw0TfvO|K6xCL&zqk5
2:
hFI*ek0Ypa|>O3eLWaNyI|34UGs*BGWG|4xTlqI5$1v|6J5b4hxhQB|e!UGlGUe!d|RuQgm!07UR|JSe%zMrw84|kEffwcplYp|V#EOUi9xrK|mxxLLZ9rcJ|Z8-PgwizSH|j#lPl3nt3l|q$qzansAMi|<>FOR&yGl2|O0@hIat24N|7DVrI>Oz!5|BgmHjZpoC<|Q53a0cwxw<
3:
mOU-4p%ArY|o>&cL!JMeN
4:
*<R2&$fKfz|x&c&mmNdgT
Вы можете проверить это для себя, используя онлайн Валидатор регулярных выражений , но я объясню это здесь.
В первом примере виновником является третья строка: j$aN6on**L
. Двойная звездочка (**
) не является допустимым выражением, поскольку первую звездочку необходимо экранировать с помощью \
(j$aN6on\**L
).
Во втором примере ошибка не выдается, поскольку он проверяет правильно. То же самое можно сказать и о третьем примере.
Четвертый пример также выдает ошибку - на этот раз, однако, это происходит из-за строки, начинающейся с символа *
. Поскольку символ *
указывает на ноль или более вхождений предыдущего элемента, но до *
.
символов нет. Вы можете проверить основы c понятия регулярных выражений, чтобы получить более подробное понимание.
Надеюсь, это полезно для вас!
Ссылки: