За последние 24 часа нас посетили 21833 программиста и 1012 роботов. Сейчас ищет 671 программист ...

Не могу составить regexp: Custom\Models\TaskCollection -> Task

Тема в разделе "Регулярные выражения", создана пользователем Lexer, 9 мар 2020.

  1. Lexer

    Lexer Активный пользователь

    С нами с:
    5 авг 2014
    Сообщения:
    25
    Симпатии:
    1
    Не могу понять как заставить получить результат: Custom\Models\TaskCollection -> Task?
    PHP:
    1. preg_match('/\\\([0-9A-z]+)Collection/', 'Custom\Models\TaskCollection', $b);
    2. print_r($b);
    Код (Text):
    1. (
    2.     [0] => \Models\TaskCollection
    3.     [1] => Models\Task
    4. )
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    ^([\d\w\\]+)Collection$
     
  3. Lexer

    Lexer Активный пользователь

    С нами с:
    5 авг 2014
    Сообщения:
    25
    Симпатии:
    1
    Выдаёт ошибку: Warning: preg_match(): Compilation failed: missing terminating ] for character class at offset 22
    Если написать \\ => \\\, то выдаёт Custom\Models\Task вместо просто Task
    PHP:
    1. preg_match('/^([\d\w\\\]+)Collection$/', 'Custom\Models\TaskCollection', $b);
    2. print_r($b);
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    ^([\w\\]{1,})Collection$
     
  6. miltorg

    miltorg Активный пользователь

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    ([^\\]+)Collection$
     
  7. Lexer

    Lexer Активный пользователь

    С нами с:
    5 авг 2014
    Сообщения:
    25
    Симпатии:
    1
    Нужно получить только Task без namespace-ов.
     
  8. miltorg

    miltorg Активный пользователь

    С нами с:
    7 апр 2019
    Сообщения:
    375
    Симпатии:
    12
    Адрес:
    Калининград
    Это мне?
    --- Добавлено ---
    preg_match('/([^\\\]+)Collection$/', 'Custom\Models\TaskCollection', $b);
    print_r($b);

    всё работает.
     
    #8 miltorg, 10 мар 2020
    Последнее редактирование: 10 мар 2020
  9. Lexer

    Lexer Активный пользователь

    С нами с:
    5 авг 2014
    Сообщения:
    25
    Симпатии:
    1
    Работает, спасибо!
    --- Добавлено ---
    Спасибо @MouseZver и @miltorg!