@BarneyGumble

Что не так с регуляркой?

Добрый вечер. Пытаюсь разбить строку регуляркой. Здесь всё нормально:

$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords); // Array([0] => hypertext [1] => language [2] => programming)


Если я меняю условие, и хочу разбить на две части, разделённые первой закрывающей скобкой, то ничего не получаю слева:

$keywords = preg_split("/^[^)]+/", "hypertext) language), programming");
print_r($keywords); // Array ( [0] => [1] => ) language), programming )
//хотя я ожидаю увидеть Array ( [0] => hypertext [1] => ) language), programming )


Проверял свою регулярку /^[^)]+/ на https://regex101.com/ - там он корректно находит вхождение до первой закрывающей скобки

Что делаю не так?
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
  • lidacriss
    @lidacriss
    wtf
    не получится у вас
    Array ( [0] => hypertext [1] => ) language), programming )

    т.к. вы начало съедаете
    вы должны понимать, что делает preg_split
    она разбивает строку по регулярному выражению.
    если у нас регулярка ^[^)]+"выкусывает" эту часть:
    hypertext) language), programming

    то и получится у вас результат:
    Array ( [0] => [1] => ) language), programming )
    Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Zaymigo Нижний Новгород
от 20 000 до 100 000 руб.
Devmasterz Тюмень
от 80 000 до 120 000 руб.