Согласно docs;
Регулярное выражение, обозначающее, что составляет «токен», используется только если анализатор == 'word'. Регулярное выражение по умолчанию выбирает токены из 2 или более буквенно-цифровых символов c (знаки препинания полностью игнорируются и всегда рассматриваются как разделители токенов).
Объяснение данного регулярного выражения
(?u)
- представляют собой юникод. Это заставит \w
, \W
, \b
, \B
, \d
, \D
, \s
и \S
выполнить сопоставление с семантикой Unicode.
\b
- представляет границу слова и утверждает положение строки на границах.
\w
- соответствует одиночному символу слова, т.е. [0-9a-zA- Z _] .
\w+
- соответствует одному или нескольким символам в границах слова. Обратите внимание, что в документации четко указано выбрать токены из 2 или более буквенно-цифровых символов c. Это причина, по которой регулярное выражение не содержит \w+
, но содержит \w\w+
.
Поскольку; данное регулярное выражение содержит только буквенно-цифровые символы c вместе с _
; он отбрасывает все однобуквенные токены (например, I, 1, 2, et c.) , а также любые присутствующие символы пунктуации.
Вы можете найти реализацию данного regex, используя grep
команду здесь.
Эта ссылка может помочь для реализации (?u)
в grep
.