Парсинг кукизов с разным концом строки.

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

Статус темы:
Закрыта.
Модераторы: xpert13
  1. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Допустим есть ответ сервера:
    PHP:
    HTTP/1.1 200 OK
    Date
    Tue16 Sep 2008 09:55:54 GMT
    Server
    Apache/2.2.3 (FreeBSDmod_ssl/2.2.3 OpenSSL/0.9.7e-p1 DAV/2 PHP/5.2.5 with Suhosin-Patch
    X
    -Powered-ByPHP/5.2.5
    Set
    -CookieJSESSIONID=789C664AFBE4816285FB7653EDD68263
    Content
    -Length12
    Content
    -Typetext/html
    Я первый раз встречаю чтобы строка с кукизами заканчивалась переносом строки. Обычно это ";" с последующими параметрами куки:

    PHP:
    HTTP/1.1 200 OK
    Pragma
    No-cache
    Cache
    -Controlno-cache
    Expires
    Thu01 Jan 1970 00:00:00 GMT
    Set
    -CookieJSESSIONID=5E80F2F0DC564B2B4CC28E29E7476DB2Path=/; Secure
    Content
    -Typetext/html;charset=UTF-8
    Transfer
    -Encodingchunked
    Content
    -Encodinggzip...
    Во втором случае я их забирал регекспом
    "/Set-[^\s]+[\s]?([^\;]+)/"

    А вот такой паттерн, который забирал бы куку в обоих случаях не могу найти.

    Буду признателен за любую помощь.
     
  2. Dimkich

    Dimkich Постоялец

    Регистр.:
    10 июл 2007
    Сообщения:
    119
    Симпатии:
    36
    Что то типа
    /Set-[^\s]+[\s]?([^\;\s]+)/ или
    /Set-[^\s]+[\s]?([^\;\b]+)/
     
  3. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    /Set-[^\s]+[\s]?([^\;\b]+)/ -не подойдет, \b в символьном классе означает не конец/начало слова, а символ забоя.
     
  4. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Разобрался, решение оказалось таким:
    "/Set-[^\s]+[\s]?[^\;\r]+/"
     
Статус темы:
Закрыта.