Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Регулярные выражения

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

Открыть новую тему     Написать ответ в эту тему

leftMIND

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
   Регулярные выражения
Обучающий материал
  • Книги    
  • Шпаргалки: от AZJIO (AutoIt3, PCRE) от Dave Child
  • wikipedia.org - Регулярные выражения на wiki  
  • edlinsoft.blogspot.com - Регулярные выражения в .NET Framework  
  • php.ru - Синтаксис регулярных выражений  
  • php.net - Синтаксис регулярных выражений  
  • regexpstudio.com - Регулярные выражения для Delphi  
    Официальные источники:
  • docs.notepad-plus-plus.org - Официальный источник Notepad++ (англ. яз.)  
  • pcre.org - Официальный справочник движка PCRE (англ. яз.)  

  •    Тестирование регулярных выражений
    Программы
    Онлайн сервисы
  • RegexBuddy - крутая и платная  
  • RegExp - бесплатно, AZJIO, PCRE, AutoIt3  
  • Expresso  
  • The Regex Coach  
  • RegExstar, Github (AutoHotKey, PCRE)
  • Обзор программ от ManHunter    
  • regexr.com здесь в Community множество готовых регулярных выражений  
  • pagecolumn.com - для javascript  
  • pagecolumn.com - для php  
  • cuneytyilmaz.com - для javascript  
  • php-include.ru - на флеш-плеере  
  • regex101.com  
  • easyregexp.ru  
  • debuggex.com - показывает структурно  

  •    Схожие темы
  • javascript регулярные выражения
  • PHP: Регулярные выражения (RegExp, Regular, eregi, preg)
  • Игра - Регулярно выражайтесь!
     
    первое сообщение темы...
    Обсуждение шапки данной темы ведётся в этой теме
    Рекомендации по составлению вопросов в данной теме:

  • Всего записей: 33 | Зарегистр. 07-04-2002 | Отправлено: 23:55 15-10-2002 | Исправлено: AZJIO, 15:18 12-02-2021
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    asku
    Цитата:
    Подскажите пожалуйста, вы использовали какой-ниб еще сервис при составлении этого запроса?
    My experience and the notepadpp's manual only. The editor has no full support for some regular expressions and it's the big problem for users of the editor.

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 22:50 16-02-2023
    asku



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sikemo
    не, просто удалять строки с @ не надо. )
    Это два издания одного словаря вместе, и их надо сравнить. Строки с @ — из одного издания, без @ — из другого.
     
    Добавлено:

    Цитата:
    My experience and the notepadpp's manual only.

    Круто!
     
    Jonmey
    А вы не могли бы еще помочь с регулярным выражением?
     
    В том выражении на самом деле нужно еще одно условие:
     
    Строки сравниваются по первому слову в строке. Это есть уже. Но если второе слово строки канун либо ун, то с эта строка уже сравнивается с соседней по двум словам.
     
    То есть (пример текста):
     
    Онлайн-магазин внедрил новый
    алгоритм который будет контролировать@
    алгоритм изменение скидок продавцами. Механизм

    запретит продавцам указывать первоначальную
    стоимость канун товара выше той, по которой
    стоимость канун Также работал в качестве приглашённого исследователя@

    он продавался неделей ранее.
    Норвежцы Марте Рёйселанн@
    Норвежцы ун Марте Рёйселанн

    и Йоханнес Бё стали победителями
    сингл-микста на чемпионате мира
    по биатлону, который проходит в немецком Оберхофе.
     
    Здесь регулярка захватит две пары (выделены полужиром), а вот ту пару, что выделена курсивом, не захватит, потому что у второй строки второе слово ун (т.е. одно из двух — ун|канун), а у первой строки этого слова (второго) нет.

    Всего записей: 599 | Зарегистр. 04-05-2016 | Отправлено: 00:01 17-02-2023
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    asku

    Цитата:
    В том выражении на самом деле нужно еще одно условие:
     
    Строки сравниваются по первому слову в строке. Это есть уже. Но если второе слово строки канун либо ун, то с эта строка уже сравнивается с соседней по двум словам.
     
    То есть (пример текста):
     
    Онлайн-магазин внедрил новый
    алгоритм который будет контролировать@
    алгоритм изменение скидок продавцами. Механизм
    запретит продавцам указывать первоначальную
    стоимость канун товара выше той, по которой
    стоимость канун Также работал в качестве приглашённого исследователя@
    он продавался неделей ранее.
    Норвежцы Марте Рёйселанн@
    Норвежцы ун Марте Рёйселанн
    и Йоханнес Бё стали победителями
    сингл-микста на чемпионате мира
    по биатлону, который проходит в немецком Оберхофе.
     
    Здесь регулярка захватит две пары (выделены полужиром), а вот ту пару, что выделена курсивом, не захватит, потому что у второй строки второе слово ун (т.е. одно из двух — ун|канун), а у первой строки этого слова (второго) нет.

    Something like this
    ^([^\r\n ]+ +(ун|канун)?)\s*(?!ун|канун)[^\n\r@]+(([\n\r]+\1\s*(?!ун|канун)[^\n\r@]+@)|(@[\r\n]+\1\s*(?!ун|канун)[^\n\r@]+$))

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 08:20 17-02-2023
    asku



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    great! thank you

    Всего записей: 599 | Зарегистр. 04-05-2016 | Отправлено: 17:03 17-02-2023
    niko7

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите с регулярным выражением, необходимо чтобы в строке из произвольных цифр соблюдались условия:  
    - число может быть нулем
    - не может состоять только из нулей
    - не может заканчиваться на ноль
    0 истина
    00 ложь
    01 истина  
    010 ложь
    00001 истина
    011110 ложь

    Всего записей: 2429 | Зарегистр. 23-09-2004 | Отправлено: 16:42 19-03-2023
    bytie

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    niko7
     
    Нужно больше тестов) По-быстрому так.
     

    Код:
    ^(0|\d*[^0])

    Всего записей: 299 | Зарегистр. 18-08-2005 | Отправлено: 21:05 19-03-2023
    niko7

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bytie
    Цитата:
    Нужно больше тестов) По-быстрому так.
    Спасибо большое, буду тестить .

    Всего записей: 2429 | Зарегистр. 23-09-2004 | Отправлено: 21:09 19-03-2023
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    niko7
    ^(0{2,}|\d+0|.*[^\d].*)$
    сработает если есть хоть одно не число, либо если заканчивается на 0, либо если все 0 (больше 1).
     

    Цитата:
    \d*[^0]

    позволит последним символом впихнуть что угодно, кроме 0.

    Всего записей: 15607 | Зарегистр. 20-09-2014 | Отправлено: 22:51 19-03-2023 | Исправлено: Mavrikii, 22:54 19-03-2023
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    niko7
    Цитата:
    Помогите с регулярным выражением, необходимо чтобы в строке из произвольных цифр соблюдались условия:  
    - число может быть нулем
    - не может состоять только из нулей
    - не может заканчиваться на ноль
    0 истина
    00 ложь
    01 истина  
    010 ложь
    00001 истина
    011110 ложь
    for example
    (?<=[^0-1])([0-1]*1|0)(?=[^0-1])

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 00:32 20-03-2023
    niko7

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii  
    Jonmey  
    Большое спасибо буду пробовать . Еще одно регулярное выражение нужно. Помогите составить его, необходимо чтобы в строке из произвольных цифр соблюдались условия:  
    - число может быть нулем
    - не может состоять только из нулей
    - первым символом может быть + или -
    - первой цифрой не может быть ноль
    ++1234567891 Ложь
    --1234567891 Ложь
    0123345 Ложь
    -0123345 Ложь
    1234567 Истина
    -1234567891 Истина
    0 Истина

    Всего записей: 2429 | Зарегистр. 23-09-2004 | Отправлено: 12:52 20-03-2023 | Исправлено: niko7, 12:52 20-03-2023
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    niko7
    Цитата:
    необходимо чтобы в строке из произвольных цифр соблюдались условия:  
    - число может быть нулем
    - не может состоять только из нулей
    - первым символом может быть + или -
    - первой цифрой не может быть ноль
    ++1234567891 Ложь
    --1234567891 Ложь
    0123345 Ложь
    -0123345 Ложь
    1234567 Истина
    -1234567891 Истина
    0 Истина
    Something like that
    (?<=[^0-9+-])([+-]?[1-9][0-9]*|0)(?=[^0-9])

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 23:34 20-03-2023
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    niko7
    ^[+-]?(0|(?!0+)\d+)$
    тут сработает если Истина, а не наоборот.

    Всего записей: 15607 | Зарегистр. 20-09-2014 | Отправлено: 00:39 21-03-2023 | Исправлено: Mavrikii, 00:47 21-03-2023
    Condar



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем добрый день, у меня очень простой вопрос, мне нужно найти файл в котором содержатся в разных местах несколько значение, допустим 1000 , 2000, 3000  
    планировал использовать NotePad++ и поиск используя регулярные выражения, но как это сделать не знаю...
    если  я напишу запрос .*[1000].*[2000].*[3000] он найдет мне файл где есть только 1000, а мне надо чтобы он нашел файл где есть  и 1000, и 2000, и 3000....

    Всего записей: 1393 | Зарегистр. 27-01-2011 | Отправлено: 11:53 21-03-2023
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Condar
    in NotePad++: mark checkbox '. matches newline'
    There doesn't need any brackets for literal text (1000, '2000', '3000')
    It possible 6 combinations
    1000.*2000.*3000
    1000.*3000.*2000
    2000.*1000.*3000
    2000.*3000.*1000
    3000.*1000.*2000
    3000.*2000.*1000
    You need to find it all.
    1000.*2000.*3000|1000.*3000.*2000|2000.*1000.*3000|2000.*3000.*1000|3000.*1000.*2000|3000.*2000.*1000

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 12:46 21-03-2023
    RdMax

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Condar
    Цитата:
    планировал использовать NotePad++ и поиск используя регулярные выражения, но как это сделать не знаю...

    Для поиска файлов лучше воспользоваться "Total Commander" и регулярные выражения для этого не нужны, сперва ищете файлы с 1000, затем в найденных 2000, затем в найденных 3000.

    Всего записей: 271 | Зарегистр. 11-11-2020 | Отправлено: 13:09 21-03-2023
    niko7

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    Mavrikii
    Большое спасибо!
    Jonmey
    Подскажите пожалуйста, что означает:
    Цитата:
    ?<=

    Всего записей: 2429 | Зарегистр. 23-09-2004 | Отправлено: 20:21 21-03-2023 | Исправлено: niko7, 20:22 21-03-2023
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    niko7

    Цитата:
    Подскажите пожалуйста, что означает:

    https://ru.hexlet.io/courses/regexp/lessons/lookaround/theory_unit

    Всего записей: 15607 | Зарегистр. 20-09-2014 | Отправлено: 21:21 21-03-2023 | Исправлено: Mavrikii, 21:22 21-03-2023
    Lin1980



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Condar

    Цитата:
    планировал использовать NotePad++ и поиск используя регулярные выражения, но как это сделать не знаю..

    NotePad то зачем? попробуй Everything, в регулярки он умеет..
     

    Всего записей: 1362 | Зарегистр. 19-04-2007 | Отправлено: 23:33 21-03-2023
    virjokk

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто знает, как можно регуляркой захватить и в идеале удалить повторы в строке текста?
    Из этой строки: RGN 1, RGN 2, RGN 3, RGN 4, FED 2, FED 4
    надо сделать такую: RGN 1, 2, 3, 4, FED 2, 4  
    То есть удалить повторы RGN и FED, оставив повторы цифр на месте.

    Всего записей: 330 | Зарегистр. 19-05-2006 | Отправлено: 07:57 28-03-2023
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    virjokk

    Цитата:
    То есть удалить повторы RGN и FED, оставив повторы цифр на месте.

    не думаю, что регулярка это сможет простым способом. проще иначе сделать.
    https://jsfiddle.net/52khr3j6/
    вставить текст, щелкнуть мимо textarea

    Всего записей: 15607 | Зарегистр. 20-09-2014 | Отправлено: 08:12 28-03-2023 | Исправлено: Mavrikii, 08:13 28-03-2023
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Регулярные выражения


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru