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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

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
    VadKomarov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Спасибо огромное.
     
    Добавлено:
    regist123
    вообще может быть любой вариант
    1, 1с, 1сс, 1-1с, 1-1сс,.... 1/1-1с,.....  
    букв впереди не может быть вообще ни каких и так же после тире не может быть букв  а только цифры, ну а посде цифр могут встречаться буквы

    Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 10:45 14-09-2017
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VadKomarov 11:45 14-09-2017
    Цитата:
    может быть любой вариант  
     1, 1с, 1сс, 1-1с, 1-1сс,.... 1/1-1с,.....  

    Мой вариант все эти варианты охватывает
       

    Цитата:
     после тире не может быть букв

    именно это и имел ввиду, немного криво выразился в предыдущем посте.
    Там на скрине синим подсвечено, что подпадает под регулярку.
    По сути в первой строке всё что охватит регулярка. А во второй строке то что не подпадает под мой вариант регулярки, но охватывает предыдущий вариант который вам предложили.

    ----------
    Раздачи и акции

    Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 12:08 14-09-2017 | Исправлено: regist123, 12:30 14-09-2017
    YuS_2



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

    Цитата:

    Код:
    \d+([/-]?\d)*(с{1,2}|дсп)?

    Надо бы ещё добавить:

    Код:
    (<=^|\s)\b\d+([/-]?\d)*(?<!/|-)(с{1,2}|дсп)?\b(?=\s)

    тест
    ибо:
     14-09-2017

    Цитата:
    как можно ограничить что бы не было куча "сссссс" а максимум 2

     14-09-2017

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

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 07:10 15-09-2017 | Исправлено: YuS_2, 07:32 15-09-2017
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2 08:10 15-09-2017
    Цитата:
    (?<!/|-)

    Лишнее в предложенном мной варианте если будет один из этих символов, то за ним обязательно должна быть цифра. Так что отдельно указывать, что их там быть не должно нет смысла. Доказательство http://i91.fastpic.ru/big/2017/0915/56/21b188bab265216834102fbc479f2356.png
    А по поводу начала и конца тоже об этом думал, но тут имхо завит от реализации как он эту регулярку использует. Если его и самый первый вариант в этом отношение устраивал, то подумал что лишнее.

    ----------
    Раздачи и акции

    Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 17:52 15-09-2017 | Исправлено: regist123, 17:53 15-09-2017
    YuS_2



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

    Цитата:
    Лишнее в предложенном мной варианте если будет один из этих символов, то за ним обязательно должна быть цифра.

    Да, всё верно, эту часть шаблона можно убрать... просто не обратил внимания, что там всегда будет цифра...

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:46 16-09-2017
    Bol970



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день.
     
    Есть многостроковый текст типа:
     
    line 1
    ....
    line n1
    Word 1:
    line n1 1
    .....
    line n1 n2
    Word 2:
    line n2 1
    .....
    line n2 n3
     
    .....
    Word N:
    line nn 1
    .....
    line nn nnn
     
    Необходимо получить то что между Word
    есть такой вариант что блок Word 1 может быть единственным.
     
    Подскажите это вообще регуляркой можно описать, типа:
    (Word [\d]+:[\S\s]+?)+
     
    Спасибо
     

    Всего записей: 94 | Зарегистр. 05-10-2004 | Отправлено: 11:47 10-10-2017 | Исправлено: Bol970, 11:49 10-10-2017
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bol970
    вы бы лучше хоть кусок реального текста привели. Word 1: от остальных строк чем отличается? Тем, что в конце двоеточие, а вдругом тексте нет?

    ----------
    Раздачи и акции

    Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 12:08 10-10-2017
    Bol970



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
     
    Спасибо за ответ.
     
    Мне нужно то, что между слов WORD
     
    я тут еще раз подумал и решил это типа:

    Код:
    Word ([\d]+)[\S\s]*?)(?=Word|^ $)

     
    единственное последнее еще может быть концом теста.

    Всего записей: 94 | Зарегистр. 05-10-2004 | Отправлено: 12:17 10-10-2017 | Исправлено: Bol970, 12:18 10-10-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую всех. Есть текст:

    Цитата:
    Conny youngbusty.com
    Anna, Anna Kolarova, Conie, Connie, Connie Carter, Conny, Conny A, Conny Carter, Conny Dior, Conny K, Conny Lior, Conny Nublies, Constance, Josephine, Lorena, Mary Grey, Muriel, Roselyne A, Roxanne
    1BY-DAY (Conny & Connie)
    Connie Carter
    Connie Carter

    И есть составленная мной регулярка:

    Цитата:
    ((?<=^)|(?<=, ))([A-Z][a-z]+ [^,]+)((?=,)|(?=$))

    с заменой

    Цитата:
    \r\n\2\r\n

    Регулярка должна охватить только неодиночные слова, разделенные запятыми и вокруг них может быть начало или конец строки и они должны перемещаться на новые строки. Это как раз вторая строка.
    Но работает регулярка не совсем корректно. Неодиночные слова переносятся, но что-то странное с первым словом во второй строке: запятая, которая следует за этим словом, переместилась на новую строку, чего не должно быть (она должна оставаться после этого слова, а не перемещаться). И вообще регулярка здесь матчит почти все строки, как-то странно (предполагалось, что должны матчиться только неодиночные слова, которые соответствуют заявленым условиям). Еще и почему-то создалась пустая строка после третьей строки (её не должно быть). Помогите улучшить регулярку, чтобы вместо  

    Цитата:
    Conny youngbusty.com
    Anna
    ,  
    Anna Kolarova
    , Conie, Connie,  
    Connie Carter
    , Conny,  
    Conny A
    ,  
    Conny Carter
    ,  
    Conny Dior
    ,  
    Conny K
    ,  
    Conny Lior
    ,  
    Conny Nublies
    , Constance, Josephine, Lorena,  
    Mary Grey
    , Muriel,  
    Roselyne A
    , Roxanne
    1BY-DAY (Conny & Connie)
     
    Connie Carter
    Connie Carter

    Было:

    Цитата:
    Conny youngbusty.com
    Anna,  
    Anna Kolarova
    , Conie, Connie,  
    Connie Carter
    , Conny,  
    Conny A
    ,  
    Conny Carter
    ,  
    Conny Dior
    ,  
    Conny K
    ,  
    Conny Lior
    ,  
    Conny Nublies
    , Constance, Josephine, Lorena,  
    Mary Grey
    , Muriel,  
    Roselyne A
    , Roxanne
    1BY-DAY (Conny & Connie)
    Connie Carter
    Connie Carter

    Спасибо!

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 14:56 30-12-2017 | Исправлено: Hjkma, 15:35 30-12-2017
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    \w+\s\w+
     
    \n$&
    ---
    RegExp: /\w+\s\w+/g
    pattern: \w+\s\w+
    flags: g
    0 capturing groups:  
    ---
     

    Всего записей: 1326 | Зарегистр. 27-11-2008 | Отправлено: 00:11 31-12-2017 | Исправлено: sikemo, 00:13 31-12-2017
    YuS_2



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

    Цитата:
    Помогите улучшить регулярку, чтобы вместо

    Всё будет зависеть от инструмента, в котором работают регулярки и от их реализации... но попробуйте так:
    Что:

    Код:
    (?<=, )([A-Z][a-z]+ [^,]+)(?=,|$)

    Чем:

    Код:
    \n\1\n

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 00:37 31-12-2017 | Исправлено: YuS_2, 00:53 31-12-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sikemo
    На вашем скрине результат не тот, что мне нужен.
    YuS_2
    Если в начале строки есть неодиночные слова, после которых стоит запятая, то запятая остается, а не переносится.  
    Вот так

    Цитата:
    Conny youngbusty.com  
    Anna Kolarova, Anna Kolarova, Conie, Connie, Connie Carter, Conny, Conny A, Conny Carter, Conny Dior, Conny K, Conny Lior, Conny Nublies, Constance, Josephine, Lorena, Mary Grey, Muriel, Roselyne A, Roxanne  
    1BY-DAY (Conny & Connie)  
    Connie Carter  
    Connie Carter

    превращается в  

    Цитата:
    Conny youngbusty.com  
    Anna Kolarova,  
    Anna Kolarova
    , Conie, Connie,  
    Connie Carter
    , Conny,  
    Conny A
    ,  
    Conny Carter
    ,  
    Conny Dior
    ,  
    Conny K
    ,  
    Conny Lior
    ,  
    Conny Nublies
    , Constance, Josephine, Lorena,  
    Mary Grey
    , Muriel,  
    Roselyne A
    ,  
    Roxanne  
    1BY-DAY (Conny & Connie)  
    Connie Carter  
    Connie Carter
     

    Нужно чтобы эта запятая переносилась тоже.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 05:54 31-12-2017
    YuS_2



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

    Цитата:
    Нужно чтобы эта запятая переносилась тоже.

    Чтобы выполнить все условия, придется воспользоваться, например, jscript или ещё каким-либо языком...
    Дело в том, что Ваш шаблон замены \n\1\n, предполагает добавление перевода строки перед захваченным текстом и после него, т.о. текст:

    Код:
    Anna Kolarova,

    - будет либо иметь пустую строку после обработки перед текстом, либо запятую, которая останется в той же строке (по моему варианту шаблона).
    В общем, либо два раза регэкспами обрабатывать с разными шаблонами, либо использовать возможности скриптового языка программирования...

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 09:51 31-12-2017 | Исправлено: YuS_2, 09:53 31-12-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2
    Ладно, не надо уже... Вручную все обработал.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 10:35 31-12-2017
    mirvery

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите, пожалуйста, как в notepad++ с помощью регулярных выражений автоматически удалить из всего текста все скобки со всем в них содержимым?  
     
    Есть документ в котором полно разного текста между обыкновенными круглыми скобками во всем документе. Надо удалить всё содержимое этих скобок вместе с самими скобками (содержимое везде разное).
     
    Вот этот текст - http://my-files.ru/g61yll (по ссылке - в doc-формате), удалятся будет с такого же текста в txt-формате.

    Всего записей: 21 | Зарегистр. 26-12-2017 | Отправлено: 23:26 23-01-2018
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mirvery 00:26 24-01-2018
    Цитата:
    в notepad++ с помощью регулярных выражений автоматически удалить из всего текста все скобки со всем в них содержимым?


    Код:
    \(.*\)

    заменить на пусто.

    ----------
    Раздачи и акции

    Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 00:03 24-01-2018
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123 напишите ему lazy вариант ибо удалит все нафиг.ю примя первую и посл. дужку

    Всего записей: 1326 | Зарегистр. 27-11-2008 | Отправлено: 00:20 24-01-2018
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mirvery
    PS. хотя я не смотрел документ, лучше бы вы его в .txt скопировали, заархивировали и так выложили. А то и качать очень долго и потом ещё и не открывается. Так что не знаю какой там текст и скобки на одной строке или на несколько разбитой, лучше так

    Код:
    \((.|\n)*\)

     
     
    Добавлено:
    sikemo 01:20 24-01-2018
    Цитата:
    напишите ему lazy вариант ибо удалит все нафиг.ю примя первую и посл. дужку

    sikemo, не понял о чём вы., так пусть mirvery тогда уточнит какой именно ему вариант нужен. Я так понял, что все между скобками удалять по максимуму.
    Либо вот ленивый вариант

    Код:
    \((.|\n)?\)


    ----------
    Раздачи и акции

    Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 00:35 24-01-2018 | Исправлено: regist123, 00:57 24-01-2018
    VVL99

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А np++ умеет открывать подобные файлы?
    по моему лучше так

    Код:
    \(.*?\)

    Ближайшие скобки, плюс оставшийся пробел, но сам файл я не видел.

    Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 00:45 24-01-2018 | Исправлено: VVL99, 17:14 29-01-2018
    YuS_2



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А чтобы наверняка:

    Код:
    \([^\)]+\)

    а для ускорения, если конечно поддерживается, я бы заменил "+" на сверхжадный квантификатор "++".  
    Но NP++ не использую и поэтому не знаю, есть ли там такая поддержка.

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 10:47 24-01-2018
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru