regex

Тема в разделе "WASM.BEGINNERS", создана пользователем punxer, 29 мар 2011.

  1. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Распишите паттерн плиз
    ^(.*?)\\.(\\d{2})$
     
  2. Atlantic

    Atlantic Member

    Публикаций:
    0
    Регистрация:
    22 июн 2005
    Сообщения:
    322
    Адрес:
    Швеция
    Паттерн ловит строки вида: [любой набор символов][слеш "\"][любой символ][слеш "\"][две буквы d]
    hxxp://www.regular-expressions.info/reference.html
    hxxp://www.regular-expressions.info/refadv.html
     
  3. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    то что до первого слэшаи после второго он еще сохраняет в первой и второй группе или как их там
     
  4. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    punxer
    Я уже писал про программу Regex Buddy...
    Она довольно хорошо поясняет, что делает регекс.
    Хотя, может мне понятно потому, что я и так синтаксис знаю.
     
  5. 0dh

    0dh New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2011
    Сообщения:
    31
    \\ в вашей строке означает 1 слэш?

    Тогда

    ^(.*?)\\.(\\d{2})$

    Например:
    sdfogushdfga.23 =====> ["sdfogushdfga", "23"]
    123.45 =====> ["123", "45"]
    xc1.09 =====> ["xc1", "09"]
     
  6. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    Неа. Это выражение совпадет, например с xxx\c\dd
     
  7. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Вот почитаешь - и плакать хочется, кровавыми слезами, между прочим.
    \ - экранирующий символ в двойных кавычках. Чтобы в строке, окавыченной двойными кавычками, сохранить символ '\', нужно записать его как "\\". Поэтому регулярное выражение на самом деле имеет вид:
    ^(.*?)\.(\d{2})$

    Читается как:
    1. без пропусков символов с начала строки (начало строки)
    2. любые символы в любом количестве (от нуля и больше). Зачем аффтар тут впиндюрил знак вопроса - неясно (параноик, наверное).
    3. символ точки (.), один, обязательный
    4. любые два символа, означающие цифру, не больше и не меньше
    5. без пропусков символов в конце строки (конец строки)

    Парсим
    ".11" -> "", "11";
    ".1" -> undef;
    ".1a" -> undef;
    "text.1" -> undef;
    "text.12" -> "text", "12"