В регулярных выражениях *
равно , а не так же, как подстановочный знак (соответствует любому символу).
Это квантификатор , который изменяет все, что находится непосредственно перед ним, и означает «ноль или более». Ваше регулярное выражение соответствует Sh
, за которым следует ноль или более e
. Так что это будет соответствовать этим строкам:
Sh
She
Shee
Sheee
etc...
Что вы, вероятно, имеете в виду, это \w*
, чтобы соответствовать любым символам слова.
/\bShe\w*\b/
Также обратите внимание, что в регулярных выражениях "символами слова" считаются буквы, цифры или подчеркивание. Таким образом, последовательность символов слова отличается от того, что в человеческих языках считается словом. На самом деле нелегко правильно определить слова, используя только регулярные выражения, поэтому, если вам нужно сопоставить слова на определенном языке, вы должны использовать библиотеку обработки естественного языка и / или словарь вместо регулярного выражения.