Есть регулярка:
preg_match('/[^.]+/', 'hello.bye', $matches);
print_r($matches);
Array
(
[0] => hello
)
Документация:
. - любой символ, кроме перевода строки.
Так почему же шаблон не видит точки и то что находится за ней, если "любой символ"?
[^.]
находит любой символ, отличный от символа .
, так как [^...]
образует исключающий символьный класс, находящий любой символ, отличный от заданных в классе.
См. Символьные классы в справке по PHP:
Символьный класс соответствует одиночному символу обрабатываемой строки, причем сам символ должен содержаться в наборе, определяемым классом. В случае, если первым символом описания класса является '^', логика работы инвертируется: класс соответствует одиночному символу, который не содержится в наборе, определяемым классом. Если символ '^' необходим как член класса, его не следует помещать первым символом в описании класса либо необходимо экранировать при помощи обратного слеша.
Внутри символьных классов .
не является специальным метасимволом, находящим любой символ, отличный от знака перевода строки (как и многие другие метасимволы). Снова смотрим справку:
Вне символьного класса точка соответствует любому (в том числе и непечатному, бинарному) символу, кроме символа перевода строки '\n' (в обычном режиме). В случае, если используется модификатор PCRE_DOTALL, точка соответствует также символу перевода строки. Обработка метасимвола "точка", никак не связана с метасимволами начала и конца строки, единственное, что у них общего - так это специальное отношение к символу перевода строки. Внутри символьного класса точка не имеет специального значения.
Вам нужен
preg_match('/.+/', 'hello.bye', $matches);
См. PHP-демо онлайн.
Шаблон .+
найдет 1 и более символов, отличных от знаков перехода на новую строку.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
url в таком виде https://mysite/news/0/2 Как поместить в одну переменную 0 а в другую 2? количество знаков может менятся к примеру https://mysite/news/20/232
При отправке почты с сервера возникает эта ошибка
Интеерсует как реализовать функционал редиректов на codeigniter
есть apiкоторое обрабатывает запрос и записывает в бд