Как извлечь последний элемент из имени таблицы в SQL, используя регулярное выражение в PHP? [закрыто]Php

Кемеровские программисты php общаются здесь
Anonymous
Как извлечь последний элемент из имени таблицы в SQL, используя регулярное выражение в PHP? [закрыто]

Сообщение Anonymous »

Вопрос:
У меня есть SQL-запрос в формате:
SELECT dt FROM a.b.c WHERE dt = '20210808' LIMIT 10;

Имя таблицы в этом операторе SQL — a.b.c, и я хочу извлечь только последнюю часть имени таблицы (c). Имя таблицы всегда соответствует следующему шаблону: схема1.схема2.имя_таблицы. Моя цель — извлечь table_name (последний элемент) с помощью регулярного выражения в PHP.
Вот моя текущая попытка:
$sql = "SELECT dt FROM a.b.c WHERE dt = '20210808' LIMIT 10";
$tmp_table_name_pattern = '/\.([^.]*$)/';
preg_match_all($tmp_table_name_pattern, $sql, $match);
print_r($match);

Однако результат, который я получаю:
Array (
[0] => Array (
[0] => .c WHERE dt = '20210808' LIMIT 10
)
[1] => Array (
[0] => c WHERE dt = '20210808' LIMIT 10
)
)

Я ожидаю, что в качестве имени таблицы будет извлечено только c. Как я могу изменить свое регулярное выражение или PHP-код, чтобы добиться этого?
Что я пробовал:
  • Я поймите, что шаблон регулярного выражения /\.([^.]*$)/ соответствует всему после последней точки, но также включает дополнительный контент после имени таблицы (например, WHERE и т. д.). .
  • Мне нужен способ точно остановиться на имени таблицы и избежать совпадения дополнительных частей запроса.
Ожидаемый результат:
Я хочу, чтобы результат был следующим:
Array (
[0] => Array (
[0] => c
)
)


Подробнее здесь: https://stackoverflow.com/questions/687 ... gex-in-php

Вернуться в «Php»