@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/ - там он корректно находит вхождение до первой закрывающей скобки

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

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

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

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

Войти через TM ID
Похожие вопросы