Вы должны использовать fo[\w-]+
вместо [[^fo]-\w]+
. Вы сделали небольшой беспорядок со своим классом персонажа. В квадратных скобках вы должны поместить символ, который хотите совместить (также как интервалы, например [a-z]
). Если вы хотите, чтобы соответствовать -
, это хорошая практика, чтобы положить его в конце в классе символов, чтобы избежать путаницы с интервалами (так что вы должны написать что-то вроде [a-d-]
, чтобы соответствовать a
, b
, c
, d
и -
). Если в классе символов вы положили ^
в самом начале, вы хотите, чтобы соответствовать всем символам, которые не перечислены, так [^a-d-]
будет соответствовать все, кроме a
, b
, c
, d
и -
. Обратите внимание, что вне класса символов ^
означает начало строки.