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

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

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    Для вот такого случая не удаляет строку http://prntscr.com/pdrcnb
     
     

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 12:18 02-10-2019
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer
    ^\p{lu}[^\n\r]*[\r\n]+([\t\[ ]+[^\n\r]*[\r\n]+)+

    Всего записей: 1366 | Зарегистр. 17-01-2011 | Отправлено: 18:42 02-10-2019 | Исправлено: Jonmey, 19:06 02-10-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    Вроде все теперь как задумывалось) Спасибо большое.

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 19:27 02-10-2019
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer
    Если хотите, кроме карточек, которые начинаются с заглавной буквы, находить и карточки в названии которых имеется заглавная буква, но она не первая, типа
    al-Qaeda    
        [c blue][b]al-Qa[/b]‧[b]e[/b]‧[b]da[/b][/c] [p]AmE[/p] [s]ame_lpd_al_qaeda.wav[/s] [p]BrE[/p] [s]bre_lpd_al_qaeda.wav[/s], [b][c blue]al-Qaida[/c][/b] /æl kɑːˈiːdə, -ˈkaɪdə/[/m]
    anti-Semitic    
        [m2]See main entry: &#8593;<<anti-Semite>>
    d'Artagnan    
        [c blue][b]d'Ar[/b]&#8231;[b]tagn[/b]&#8231;[b]an[/b][/c] /d&#593;&#720;&#712;t&#230;nj&#601;n $ &#716;d&#593;&#720;rt[i]&#601;[/i]n&#712;j&#593;&#720;n/ [p]AmE[/p] [s]ame_ld5_d_artagnan.wav[/s] [p]BrE[/p] [s]bre_ld5_d_artagnan.wav[/s][/m]
    eBay    
       [c blue][b]eBay[/b][/c] /&#712;i&#720;be&#618;/ [p]AmE[/p] [s]ame_lpd_ebay.wav[/s] [p]BrE[/p] [s]bre_lpd_ebay.wav[/s][i][c maroon] trademark[/c][/i][/m]

    тогда можете пробовать использовать регэксп вида
    ^[^\t\[ \p{lu}]*\p{lu}[^\n\r]*[\r\n]+([\t\[ ]+[^\n\r]*[\r\n]+)*
     
    если в регэкспе поменять красную звезочку * на знак плюса +, то регеэксп будет находить только такие карточки, в которых заглавная буква не первая.
     
    Обратите внимание, что в PowerGrep вы можете не только удалять/заменять карточки/текст, но и собирать, например найдене карточки в отдельный файл или файлы (наряду с удалением/заменой или без таковых). См режим  Action type - > Collect data
     
    Прим. в словаре есть строки
    Код:
    #ИМЯ?    

    Не знаю, насколько их наличие обосновано.

    Всего записей: 1366 | Зарегистр. 17-01-2011 | Отправлено: 19:38 02-10-2019 | Исправлено: Jonmey, 19:57 02-10-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    Это уже мелочи, на самом деле мне наличие названий всяких мешало тем, что если искомое слово совпадало с заголовком, то они вместе открывались, и первым по списку отображался заголовок содержащий имя собственное. Звук проигрывался с первого заголовка, плюс место занимало на панели экрана.  
    Я так и не понял, почему первая версия кода не выделяла некоторые строки которые на скриншоте показывал?

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 20:45 02-10-2019 | Исправлено: gerxer, 20:49 02-10-2019
    Jonmey

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

    Цитата:
    если искомое слово совпадало с заголовком, то они вместе открывались, и первым по списку отображался заголовок содержащий имя собственное.

    Так можно было удалять исключительно неуникальные заголовки с заглавной буквы (у вас таких всего лишь 204, насколько я могу судить)
    Aaa - удалить
    aaa - оставить
    а не все подряд, как у вас сейчас.
    Или (если формат словарей допускает) объединять заголовки в одну карточку, но написанную с маленькой буквы. Наконец, такие парные карточки можно было местами поменять (возможно, тогда и порядок вывода изменился). Впрочем, это вам нужно, а не мне.

    Всего записей: 1366 | Зарегистр. 17-01-2011 | Отправлено: 23:23 02-10-2019 | Исправлено: Jonmey, 23:25 02-10-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    Можете еще для этого словаря https://wdho.ru/d45v звук поменять местами(NAmE первый, BrE второй), а все остальное удалить. Ну можно еще аббревиатуры оставить типа [m0][p]noun[/p], но это не принципиально.
     
    [m1][c darkslateblue]BrE[/c] [c gray]/[/c][c navy]'la?tha?s[/c][c gray]/[/c] lighthouse__gb_1.wav;
    [c indianred]NAmE[/c] [c gray]/[/c][c navy]'la?tha?s[/c][c gray]/[/c] lighthouse__us_1.wav
     
    Я когда-то пробовал менять, но у меня не получилось для этого словаря, не помню почему. Да и как менял уже не помню, там порнографический способ был какой-то, что сначала в таблицу ексель это переводилось, там удалялось лишнее и менялись колонки со звуком местами с помощь макроса.
     

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 11:36 03-10-2019
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer
    Найти:
    ^([\t ]+\[m[1-9]\][\(]*[^\r\n]*)(\[c[ ]*\p{l}*\]BrE( strong form| also| usually| weak form| before vowels| before vowels and finally)?\[\/c\][^\n\r]*\[s\][^\n\r\[]*\.wav\[\/s\])(;[^\n\r]*)(\[c[ ]*\p{l}*\]NAmE( strong form| also| usually| weak form| before vowels| before vowels and finally)?\[\/c\][^\n\r]*\[s\][^\n\r\[]*\.wav\[\/s\])([\)]*)
    Заменить на:
    \1\5\4\2\7
     
     

    Всего записей: 1366 | Зарегистр. 17-01-2011 | Отправлено: 21:18 03-10-2019 | Исправлено: Jonmey, 21:19 03-10-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    Спасибо.

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 22:17 03-10-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, почему не работает этот код. Нужно найти все слова которые начинаются с \wi, но в которых после i нет двоеточия.
    (\W|^)(\wi[^:]\w+)

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 11:15 18-10-2019 | Исправлено: gerxer, 11:20 18-10-2019
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    \wi+[^:]?

    Всего записей: 1327 | Зарегистр. 27-11-2008 | Отправлено: 23:23 18-10-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sikemo
    Не работает.

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 23:38 18-10-2019
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer
    Я вам уже говорил, что задачу, если вы хотите получить работающий ответ, нужно озвучивать полностью. Вы же заходите на второй круг, держа помошников в потемках.
    Вы ищите в словаре, с неизвестно каким ситаксисом регэкспов. Если он (используемый синтаксис регэкспов) вам известен это нужно указать прямо!
    Второе вы ищите в транскрипциях, а не в заголовках статей - это тоже нужно указывать прямо!
    Наконец, нужно приводить хотя бы, фрагмент словаря, в котором ищите, поскольку помошники здесь, как правило весьма неплохо знают английский и чаще всего словари им вообще не нужны.
     
    Поскольку речь идет о транскрипции, а не о словах (заголовках), то имееются особенности - она может начитаться не только с букв. но и с различных знаков связывающей пунктуации или иных, а помощники до этого догадаться не могут, по определению.
    Теперь задайте свою задачу в корректной форме, если вам все еще нужен ответ.

    Всего записей: 1366 | Зарегистр. 17-01-2011 | Отправлено: 20:09 19-10-2019 | Исправлено: Jonmey, 21:04 19-10-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    Ищу по транскрипции, в Голдендикте. Но ерунда какая-то непонятная, вроде бы транскрипция одинаковая http://prntscr.com/plkcqi
    Вот только если копирую первые тир знака транскрипции в первом словаре и подставляю выражение для поиска (\W|^)((/|первые три знака\w+), то в этом словаре нормально ищет, но при поиске во втором словаре уже ничего не находит(и наоборот). Получается символы хоть и выглядят одинаково, но воспринимаются программой как разные.

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 21:18 19-10-2019 | Исправлено: gerxer, 21:19 19-10-2019
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer
    Я не могу корректно ответить на ваш вопрос, потому что много вводных неизвестны. А действовать методом перебора, чтобы угадать их - некоторый перебор для копеечной задачи.
    В частности, мне неизвестна версия вашего словаря, где ее скачать и т.д. Это важно, поскольку в этом словаре чего-то постоянно улучшают (в том числе и движок регэкспов) и следить или разбираться в этих хитросплетениях - выше моих сил. Без этого - никак, поскольку нет ясной информации о синтаксисе регэкспов, которые используются конкретно в вашей версии программы.
    Если бы, как минимум, мог тупо скачать по готовой ссылке конкретно вашу оболочку со словарем, в котором у вас проблемы (то есть, полный комплект с одним или сколько там у вас проблемных словарей), то смог бы дать ответ не методом гадания.
    В данном же случае с высокой долей вероятности придется угадывать, что может затянуться не на одну страницу темы. Учитывая пониженный интерес юзеров данной темы, в частности, к словарям, это будет не очень хорошо для топика. Другое дело, когда условия задачи прозрачны, с легко воспроизводимым окружением (синтаксис, программа, конкретный (не из головы) целевой пример (текст/файл)) - тогда любой желающий помочь запросто сможет воспроизвести у себя проблему и также запросто решить ее за пару минут, вместо многодневного и мучительного вытягивания по кусочкам всей этой инфы из страждущего.
     
    Пишу всем страждущим, а не только вам. Легко можно заметить, что одним - помогают быстро и в полном объеме, а другим, либо вовсе не помогают, либо бросают на какой-то стадии. Это не из-за помощников происходит, а из-за тех, кто задает задачки. Никому не хочется тратить время на то, на что страждущим тратить его лень: если страждущему лень как-то облегчить задачу помощнику, то уж помощнику - это нужно еще меньше.
     
    И общий совет, новичкам использующим регэкспы: не торопитесь использовать разного рода сокращенные способы задания строк, символов и т.д. Используйте всегда развернутое представление, типа всегда пишите [A-Za-z0-9_] а не \w и т.д. и т.п. И делайте до тех пор, пока не поймете самостоятельно, зачем это нужно.
    Однако, пока вы будете пребывать в постижении вопроса "Зачем это нужно?", это не помешает вам совершать меньше ошибок при составлении регэкспов и, в то же время облегчит, исправление ошибок или модернизацию существующих регэкспов, что в конечном счете и приведет вас к ответу на вопрос "Зачем..."

    Всего записей: 1366 | Зарегистр. 17-01-2011 | Отправлено: 20:23 21-10-2019 | Исправлено: Jonmey, 20:24 21-10-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    Да я и не ожидал что вы за это возьметесь, тем более что в итоге скорее всего это в программе проблемы)

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 21:14 21-10-2019
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gerxer
    Ну и славно. Значит, изначально не очень-то нужно было. И вопрос можно закрыть.

    Всего записей: 1366 | Зарегистр. 17-01-2011 | Отправлено: 22:42 21-10-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    Да нет я просто ищу как упростить задачу себе и вам)
    Пришел к такому варианту, для поиска по транскрипции нужно выделить все статьи  http://prntscr.com/pngys2
    То есть получается чтобы код выделил все строки:
    - строка начинается не с табуляции
    - следующие строки начинаются с табуляции, и тут должна быть найдена транскрипция, например по выражению https://regex101.com/r/AKyHth/2
    и так до следующей строки которая начинается не с табуляции.
     
    Чем то похоже на то когда удаляли статьи которые начинались с большой буквы ^[^\t\[ \p{lu}]*\p{lu}[^\n\r]*[\r\n]+([\t\[ ]+[^\n\r]*[\r\n]+)*, но у меня не получается подобрать код для поиска по транскрипции.
     
    Файл словаря https://wdho.ru/4Ilz
     

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 13:09 24-10-2019 | Исправлено: gerxer, 13:16 24-10-2019
    YuS_2



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

    Цитата:
    Чем то похоже на то когда удаляли статьи которые начинались с большой буквы

    Для того, чтобы получить помощь, необходимо:
    1. Прекратить "панику"
    2. Сформулировать полностью задачу.
    3. Описать используемые инструменты, либо воспользоваться теми, которые подскажут после полного описания задачи.
    Всё. Других путей нет.
    Выдавать информацию в час по чайной ложке - помощи не дождетесь.  
    Если дождетесь, то помощь будет соответствовать выданной информации, что, естественно, Вас не устроит. Понадобятся дополнительные вопросы-ответы... в таком режиме, мало кто возьмется помогать, а кто возьмется - быстро устанет и прекратит помогать. В общем - пиши пропало.

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 13:54 24-10-2019
    gerxer

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2
    Вроде бы уже всё расписал максимально. Нужно в словаре по части заданной транскрипции выделить все статьи которые ее содержат. Инструмент EditPad.

    Всего записей: 565 | Зарегистр. 19-06-2014 | Отправлено: 14:48 24-10-2019
    Открыть новую тему     Написать ответ в эту тему

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