Помогу с регвырами

Тема в разделе "Регулярные выражения", создана пользователем zek24, 17 июл 2011.

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

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    780
    Симпатии:
    238
    Привет,
    нужна практика с регвырами.
    Так что, если вам лень или не умеете, то можете смело обращаться.
    Не обещаю, что помогу, но точно постараюсь.
     
  2. droid

    droid Создатель

    Регистр.:
    2 авг 2011
    Сообщения:
    37
    Симпатии:
    4
    Делал 3 подхода , но пока не нашёл верного ответа на свою задачу. Предлагаю разобраться всем :).
    ВХодный данные:
    имеем на входе сумму которая отображается как ХХХ ХХХ.ХХ, необходимо её вынуть. Если число будет увеличено на 10 то получим ещё один блок и число будет выглядеть как Х ХХХ ХХХ.ХХ, но чаще всего встречается как ХХХ.ХХ.
    Число может быть положительным так и иметь знак -.
    Сечас пробую такое выражение , не всегда помогает...
    '-??(\d{1,3}?.)?\d{1,3},\d{1,2}'
    Помогите разобраться.
     
  3. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.035
    Симпатии:
    703
    попробуй так
    PHP:
    '/[-]?\d{1,3}?\s?\d{1,3}?\s?\d{1,3}+\.\d{1,2}+/is'
     
  4. droid

    droid Создатель

    Регистр.:
    2 авг 2011
    Сообщения:
    37
    Симпатии:
    4
    Наверное стоит добавить, что употребляется это все в python.
    zzallexx, получил ошибку ре, не верное выражение ( raise error, v # invalid expression sre_constants.error: multiple repeat)
     
  5. Monterpan

    Monterpan Постоялец

    Регистр.:
    3 мар 2008
    Сообщения:
    150
    Симпатии:
    27
    Помогите со следующей задачей:

    регуляркой на javascript нужно выделить все слова вида: #xxx , и @xxx.

    В конце этих слов должен стоять пробел, неразрывный пробел, запятая, точка. Слова могут стоять в начале и в конце текста.
     
  6. vlad_v

    vlad_v

    Регистр.:
    30 июн 2006
    Сообщения:
    446
    Симпатии:
    67
    При переборе ключевых слов из базы надо выбирать такие, которые содержат только 1, 2 и 3 слова.

    В данный момент пользуюсь таким
    Код:
    ^(\w+\s){1,3}+$
    но это работает только если в конце строки есть пробел.

    Может есть вариант что бы работало и без пробела в конце ?
    Спасибо
     
  7. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    780
    Симпатии:
    238
    У меня получилось как-то так
    Код:
    /[#@](.){3}[ ,.]/gi
    Желательно, на будущее, давать часть текста для которого нужен регвыр.
     
  8. Monterpan

    Monterpan Постоялец

    Регистр.:
    3 мар 2008
    Сообщения:
    150
    Симпатии:
    27
    Не совсем то:
    - может быть любое количество букв в теге, а не только 3.
    - не находит тег в таком выражении: ' #1234' (если тег в конце строки)
    - в данном выражении: ' x#eee ' тега нет, но его находит
    - из такого текста ' #mmmm, ', нужно выделить только '#mmmm', и не захватывать запятую
     
  9. SHAKAL

    SHAKAL Создатель

    Регистр.:
    30 мар 2007
    Сообщения:
    10
    Симпатии:
    3
    Здравствуйте, есть текст:
    PHP:
    $str=
    [spoiler] 
    Спойлер-1 
    [/spoiler] 
    [spoiler] 
    Спойлер-2 
      [spoiler] 
      Спойлер-2-1 
      [/spoiler] 
      [spoiler] 
      Спойлер-2-2 
        [spoiler] 
        Спойлер-2-2-1 
        [/spoiler] 
      [/spoiler] 
      [spoiler] 
      Спойлер-2-3 
      [/spoiler] 
    [/spoiler] 
    [spoiler] 
    Спойлер-3-s
    [/spoiler] 
    '
    ;
    Нужна регулярка, которая бы нашла текст между , в которых нет вложенного
    , т.е из текста выше регулярка должна вернуть:
    Код:
    [0]=>Спойлер-1
    [1]=>Спойлер-2-1
    [2]=>Спойлер-2-2-1
    [3]=>Спойлер-2-3
    [4]=>Спойлер-3-s
    ==============

    Monterpan, вот это для какого писали?

    Попробуй так:
    Код:
    /(\s|^)[#@](.+?)(,|\.|\s|$)/gi
    Пример работы: http://regexr.com?2udmm
     
  10. Gray_f0x

    Gray_f0x Создатель

    Регистр.:
    22 мар 2009
    Сообщения:
    13
    Симпатии:
    0
    030230230233

    имеем номер, необходимо первых три цифры взять в скобки, чтобы было так:

    (030)230230233

    Нужно для PHP preg_replace. Заранее - большое спасибо!
     
Статус темы:
Закрыта.