моя цель состоит в том, чтобы соответствовать tre и его предыдущим символам
Хорошо в вашем примере The tree is looking awesome with leaves and flowers. фрагменту слова tre не предшествуют никакие символы в одном и том же слове, ему предшествуют символы, являющиеся частью более ранних слов. Это делает ваш вопрос немного двусмысленным.
Чтобы сопоставить любые символы, за которыми следуют "t", "r", "e", я бы использовал .*tre .
Чтобы сопоставить "t", "r", "e" и любые другие символы, я бы использовал tre.*
Чтобы сопоставить слово, начинающееся с "t", затем "r", затем "e", я бы использовал tre\w*
Мое регулярное выражение [tre *]
Это соответствует одному символу, характер согласованного может быть любым одним из четырех указанных. Внутри [] метасимвол * обрабатывается как обычный символ (потому что это наиболее полезный способ обработки в этом контексте).
Скобки [] предназначены для указания одного символа в тексте, который может иметь несколько возможностей. Например, если вы хотите сопоставить одно из слов « Tree или « tree вы можете использовать [Tt]ree что означает совпадение символа с буквой T или t за которым следует второй символ, за которым следует r а затем третий символ, за которым следует e четвертой буквой e .
Вы можете сопоставить Tree и tree используя .ree но . соответствует любому отдельному символу, поэтому RE также будет соответствовать free и другим словам, которые вы можете не захотеть. [] предоставляет вам возможность быть более конкретным, чем . при указании значений одного символа в тексте, который вы хотите сопоставить