Поиск в строке по регулярному выражению

StalkerClasses

Новичок
Есть строка:
"testtesttesttestte2sttesttesttesttesttesttest"

Каким будет самый простой способ получить по регулярному выражению слово "te2st", но с учетом 1 символа перед этим словом и 1 символом после этого слова (его может и не быть если строка просто te2st)?

Т.е. в данном примере это было бы: tte2stt.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Говорят, нынешний уровень людей со сформированным понятийным мышлением всего около 20%.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Зачем тут регулярки?
 

StalkerClasses

Новичок
PHP:
    /* Служебная функция (замена колонки или названия таблицы в SQL-запросе) */
    function replaceFieldNameOrTableNameInQuery($query_text = '', $search = 'id', $replace = 'l18n_id') {
        $output = preg_replace_callback('/(.{0,1})id(.{0,1})/is', function($m) use ($replaces){
           
                // Заменяем при условии, что это самостоятельный "field"
            if(!preg_match("/([\w\d_]+)/", $m[1]) AND !preg_match("/([\w\d_]+)/", $m[2])) {
                return $m[1]."l18n_id".$m[2];
            } else {
                return $m[0];
            }
           
        }, 
        $query_text);
        return $output;
    }
Решил как ни странно.
 
Сверху