А вы знали, что если вставлять скопированный текст из буфера сюда на Капибару, то по Ctrl+Shift+V он вставляется с автоматическими переносами строк?
И не надо потом весь текст сканить и вставлять переводы строк в нужных местах.
Плюс к этому: в винде это стандартная комбинация "Вставить без форматирования". Например скопировали в ворде или на сайте сайт со ссылками, заголовками и другими финтифлюшками; Ctrl+Shift+V - все финтифлюшки исчезают.
Доброго дня! Помогите плиз. Занадоела одна фишка. Копирую текст из откуда-нибудь, открываю ворд, жму "вставить" - фигу. Вставить в ворд текст можно только если ты сначала открыл ворд, а потом копирнул текст. Причем на блокнот это не распространяется. Раньше такого не было, зуб свой блондиночий даю)))))) А вот момент, когда это началось, не отследила, и увязано ли это со сменой ОСи - не знаю. Нынче 10ка, ворд 2016.
Может кто знает, как это лечить, и сможет объяснить доступными женскому уму словами?)))
UPD. Спасибо @iLex812 за вектор для экспериментов! Отколупнула в ворде надстройку Foxit PDF creator COM Add-in, и наконец эта чешуя прекратилась! Я просто счастлива)))) Благодарю всех откликнувшихся.
Записка адресована тем, кто приходит в ужас при виде регулярных выражений или понятия не имеет что это и зачем. Содержит упрощенное описание и не претендует на полноту.
Каждое приложение реализует поддержку масок и регулярных выражений так, как ему захочется, и несмотря на то, что стандарт, общие принципы и низкоуровневая реализация практически всегда одинаковые, в случае неожиданного поведения стоит ознакомиться с документацией или хотя бы попросить ChatGPT привести примеры валидного использования.
Маски пути (wildcards) используются для описания файлов на диске для которых невозможно задать полное имя. Например, если мы хотим найти все исполняемые файлы в Windows, маской будет *.exe.
Классические маски позволяют использовать символы ? и * вместо реальных символов. ? - обозначает любой символ (один!), а * - любое число любых символов (0 символов тоже подходит).
????.* - любые файлы из 4 символов с любым расширением: abcd.jpeg
a* - любые файлы, которые начинаются на 'a': abc, arthas.jpg
*b* - любые файлы, которые содержат 'b': abc, mask.black
Большинство приложений учитывают только имя файла при проверке на маску, но не путь к нему. Поэтому маски вида C:\*virus.exe могут не находить ничего, даже если на диске C:\ есть файл с именем virus.exe. Однако каждое приложение может иметь собственные правила, описанные в документации. Например, GIT предоставляет расширенный синтаксис, который позволяет работать с каталогами: src/**/*.cs - все файлы .cs в любых каталогах в папке src; а файловые менеджер FAR позволяет указать несколько масок: *.mkv;*.avi.
Windows Explorer по умолчанию скрывает расширения файлов. Для их отображения нужно поставить галочку в меню Вид -> Расширения имён файлов
Регулярные выражения (regular expressions) - являются более мощным инструментом работы с текстовыми данными и позволяет искать произвольные последовательности символов, разбивать их на группы и использовать эти группы в дальнейшем. Для поиска текста с использованием регулярных выражений вам понадобится редактор, который их поддеживает. Например, Notepad++ и VSCode под Windows.
Маски чаще всего работают только с файлами, регулярные выражения чаще всего работают только с текстом, большинство программ, которые умеют работать с масками не готовы к тому, что вы скормите им регулярные выражения и наоборот. Но вы всегда можете почитать документацию или проверить это. Чаще всего, если приложение поддерживает работу и с тем и с другим, вначале и конце регулярного выражения должен стоять символ /
Возможности регулярных выражений огромны, но мы поговорим о самых базовых из них, которые и необходимы и достаточны в 95% случаев. Для тестирования и отладки ваших регулярок, настоятельно рекомендую сайт regex101 - это мощный визульный редактор, который отображает - как ваши регулярки мапятся на примеры вашего же текста.
Начнём с простого регулярного выражения: alo.*
' alo ' - это просто символы, которые должны быть в строке
' . ' - точка указывает на любой символ, кроме переноса строки
' * ' - указывает, что должно быть любое (в т.ч. 0) число таких символов
Таким образом наше выражение, в отличие от маски, наше выражение будет совпадать и со строкой "alo" и со строкой "alo.jpg", и со строкой "alongtimeagoinagalaxyfarfaraway", так как ' . ' не является точкой, а вместе со ' * ' указывает на любое число символов до конца строки. Чтобы указать именно точку, нам понадобится символ ' \ ' который меняет режим интерпретации следующего символа:
' \ ' - сам по себе не является символом, а меняет восприятие последующего
' \. ' - просто точка
' \\ ' - просто слеш
' \r ' - возврат курсора, часто стоит в конце строки
' \n ' - конец стркои
' \t ' - табуляция
Таким образом, если мы хотим, чтобы наше выражение alo.* работало, как файловая маска alo.*, его нужно переписать: alo\..*
' alo ' - всё ещё просто символы
' \. ' - просто точка
' .* ' - любое число любых символов до конца строки
Теперь к более полезным вещам: помимо ' . ' существуют другие способы описать последовательность символов:
' \s ' - любые прбелы и переносы строк
' \S ' - иневертирует \s - то есть НЕ пробелы и НЕ переносы строк
' \w ' - часть слова (буква или цифра, без дефисов и пробелов)
' \W ' - НЕ часть слова, то есть не буква и не цифра
' \b ' - граница слова, то есть \w\b будет указывать на последнюю букву в слове
' \B ' - НЕ граница слова, то есть \B\w\B будет указывать на букву, которая не является первой или последней в слове
' \A ' или ' ^ ' - начало строки
' \Z ' или ' $ ' - конец строки
' [abc] ' - любой символ из числа ' a ' , ' b ' и ' c '
' [^abc] ' - любой символ КРОМЕ ' a ' , ' b ' и ' c '.
' [а-яА-ЯёЁ] ' - любой символ в диапазоне от ' а ' до ' я '.
Диапазоны значений, такие как ' а-я ' используют порядковые номера символов в таблицах кодировок. Поэтому буква ' ё ' указана в наборе отдельно - на заре времён её не стали включать в стандартную таблицу кодировки, где и без того было тесно (всего 256 символов), а с приходом ANSI воткнули туда, где было место. Так и продолжилось в UTF8 и Unicode.
Все вышеописанные выражения описывают ровно один символ из набора. Для того чтобы указать, что символов может быть больше, необходимо сделать это явно:
[abc]* - любое число символов a, b или c
[abc]? - 0 или 1 символ
[abc]+ - один или более символ
[abc]{2,} - два и более символа
[abc]{4,8} - от 4 до 8 символов
По умолчанию все операторы, указывающие число символов - жадные. Это означает, что они будут пытаться найти как можно больше текста, который подпадает под условие. Например, .+k захватит всю строку "xkabak". Поведение можно изменить, поставив после числа символов знак вопрсоа ' ? ' , это заставит регулярку выбирать минимально возможное число символов из набора, так выражение .+?k найдёт вначале "xk", а затем "abak"
В ситуации, когда вы ищите слово, которое может включать в себя "aab" или "baa", но не "bab", может быть удобно указать несколько опциональных наборов, вместо того чтобы пытаться описать один, для этого служит разделитель ' | '. Выражение aab|baa будет искать либо одно вхождение, либо другое. Если дать ему на вход строку "aabbaa", то первым вхождением вы найдёте "aab", а следующим "baa".
Поведение регулярных выражений зависит от выставленных флагов. Некоторые приложения дают вам возможность применять флаги, другие позволяют использовать их как часть регулярного выражения, третьи не позволяют менять вообще. Самый главный флаг для вас - ' u ' - поддержка Unicode. Если флаг не выставлен, то \w и \b не будут работать с кириллицией. Как часть регулярного выражения флаги перечисляются слитно после выражения: /.*/gmuis
' g ' - global, поиск продолжается после первого совпадения
' m ' - multi-line, воспринимает текст, как набор строчек, позволяет использовать ' ^ ' и '$', как символы начала каждой строчки в вашем тексте
' u ' - поддержка Unicode, без этого флага дефолтные наборы работают только с ASCII таблицей кодировки
' i ' - insensitive, игнорирует регистр букв, выражения которые срабатывают для ' я ', также работают и для ' Я ', и наоборот
' s ' - single-line, воспринимает текст, как одну строку, ' . ' начинает работать для символа новой строки ' \n '
Флагов больше, но это те, что могут вам понадобиться в первую очередь.
Наконец, давайте разберём группировки - то, что делает регулярки по настоящему мощным инструментом для замены и значительно упрощает анализ.
(.)(.) - нет, это не сисиьки, это две группы символов по 1 в каждой. :)
По умолчанию каждая группа имеет порядковый номер: $1 и $2 соответственно.
Это позволяет вам ссылаться на результаты поиска и выполнять преобразования.
Например ^(.*)\.([^\.]+)$ такое выражение позволит разбить полное имя файла на имя и расширение:
' ^ ' - начало строки
' (.*) ' - группа $1, в неё попадает любое число любых символов
' \. ' - далее следует точка
' ([^\.]+) ' - группа $2, в неё попадает хотя бы 1 символ, который не является (^) точкой (\.).
' $ ' - конец строки
Теперь мы можем заменить одну группу, и оставить без изменений другую. Например у нас есть список файлов с расширениями, а мы хотим оставить только имена:
Заменяем строку, оставляя только группу $1
Группам можно давать имена: (?'left'.)(?<right>.) и ссылаться на них: $+{left} и $+{right} соответственно. Как вы можете заметить, группы всё ещё содержат по 1 произвольному символу, но уже стали очень многословны. Смешивание управляющих последовательностей и наборов символов является одной из проблем, которая мешает легко и просто начать пользоваться регулярками - в них нет ничего сложного, у них просто упоротый синтаксис, который тяжело читать и понимать неподготовленному человеку.
Наконец, если вам понадобится "инвертировать" выражение, описав то, что не должно попадать в текст, вам могут помочь два костыля, которые проверяют, что впереди или позади от текущей позиции нет определенного регулярного выражения:
Здравствуй (?!мир) - ищет "Здравствуй " за которым не следует "мир".
(?<!Здравствуй) мир - ищет "мир" перед которым нет "Здравствуй".
В обоих случаях вы можете указывать любые регулярные выражения внутри скобок, но во втором выражение должно иметь константную длину, то есть вы не можете заменить "Здравствуй" на "З.+", так как подобный поиск будет работать чудовищно долго и не поддерживается стандартом регулряных выражений.
Помимо создания именованных групп, ( ) используются для любого рода группировок, начиная с возможности сделать текст регулярного выражения чуть чище, заканчивая ситуацией, когда вам необходимо указать, что вся группа выражений может встречаться не один раз. Например, вот так можно провалидировать список email-адресов:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} - затем идёт шаблон нашего email-адреса. Несмотря на кажущуюся сложность, фактичеси он состоит только из перечислениям допустимых символов и выглядит почти как \w+@\w+\.\w+ (лучше не стало, да? :D ничего, привыкните :))
(; )? - это опциональный разделитель между адресами - точка с запятой и пробел
Затем мы берём всё предыдущее выражение в скобки и говорим, что у нас должно быть хотя бы одно такое вхождение ( ... )+
Ну и заканчивается это концом строки: $
Таким образом вы можете группировать выражения, делать выбор между разными группами, делать вложенные выражения внутри других выражений и т.д.
Единицы добравшиеся досюда спросят - и зачем это мне?
Прежде всего - для автоматизации рутинных процессов по поиску, замене и анализу текста. Например, у меня есть 661 .txt файл с текстом из игры, и мне необходимо найти все ссылки на игровую энциклопедию вида:
<link="Encyclopedia:TechPriest">техножрец</link>
Я использую Notepad++ для поиска файлов по маске .txt и регуляркой
<link="Encyclopedia:\w+">([^<]+)<\/link>
выгребаю нужные строки:
Notepad++ (Ctrl+F -> Найти в файлах), внизу: "Регуляр. выражен."
После чего копирую найденные строки в отдельный файл и сортирую, чтобы убрать мусор:
Notepad++ (Для сортировки: Правка -> Операции со строками -> Сортирова)
Заменяю <link на \r\n<link, чтобы в каждой строки было не больше одного вхождения и снова сотритрую, убирая мусор:
Notepad++ (Для замены: Ctrl+H)
Теперь мне остаётся заменить всю строку на значение первой группы регуляки, удалить дубикаты и отсортировать строки:
<link="Encyclopedia:\w+">([^<]+).*
Notepad++ (Для удаления дубликатов: Правка -> Операции со строками -> Удалить дубликаты)
Таким образом регулярные выражения сэкономили кучу времени, которое в противном случае пришлось бы потратить на ручную вычистку документа.
Надеюсь, теперь вам понятны общие принципы работы регулярок, и для чего они могут пригодиться. Всем спасибо за внимание и до новых встреч.
Вы думаете, милота - это только котики и сиськи? А как бы не так, в секс-шопе тоже милоты бывает столько, что даже у заматерелого секс-шопера слеза на глаз наворачивается и стекает по небритой щеке.
На днях забежала девушка, смотрю на неё и смутно припоминаю, кажется была месяц-два назад. И точно, она тоже меня помнит и рассказывает, что игрушку искали на замену той, что уже есть. Всё, пазл сошёлся - и её помню и что искали вакуум-волновой стимулятор не стандартный, тоже вспомнила. И даже финальный выбор целиком, но по деньгам на тот момент не сложилось.
А она помнит, что подобрали то что хотелось, а вот что - не помнит. Иду к витрине и достаю коробочки. "Точно! Это они." - говорит - "А там ещё одна была, кажется. Только не помню какая." Так я-то помню, но продалась игрушка за это время. Лезу на сайт, нахожу в другом филиале и оппаньки, со скидкой даже. А рядом другой точно такой же, только цветом отличается и скидка больше, по прикидкам аж процентов пятьдесят. Я-то помню ещё и то, что она деньги копить ушла в тот раз.
На пальцах объясняю систему, как этот стимулятор на сайте найти, заказать и что успеет он к нужному времени приехать. А девушка из сомневающихся и нерешительных, и за каждый мой манёвр норовит спасибо сказать - за то что вспомнила её и то, что она выбрала тогда. За то, что с другим выбором помогла оперативно и уболтала бонусную карту открыть и на ней уже вот и баллы начислены, и скидку нашла на то, что хотелось. В общем, с час мы с ней точно протусили в магазине и расстались абсолютно довольные друг другом.
Другая дама заскочила за каким-нибудь виброяйцом с возможностью передать управление партнёру. Показываю ей, попутно рассказывая о приложениях разных производителей, а она на меня смотрит и уточняет, что ей через блютус не нужно. А чтобы только на приложении было. Объясняю связку "игрушка-блютус-ваш телефон-ссылка партнёру в приложении". "Ой, а я подключать не стала и решила что она не работает." - говорит она и вижу, что подозревает что я её где-то надуть пытаюсь.
Достаю свой телефон с установленными приложениями и на примере тестеров показываю, как всё происходит. Она внимательно снимает мои манёвры и снова изумляется, что игрушку подключить нужно было. Убежала на своей экспериментировать, ничего не купив по ходу дела.
Мне тут сказали, что нужно в менеджеры расти, а я упёрлась как ишак дурной, что не хочу в менеджеры. Мне тут нравится, где ещё себя Бэтменом и спасителем человечества так остро почувствовать можно? Для почёсывания ЧСВ - самое то место.
1.
Нейропластичность.
Мы исследовали пациентов с неврологическими проблемами и черепно-мозговыми
травмами. В результате была обнаружена женщина 30 лет, которой удалили часть
мозга, отвечающую за двигательные функции. Она вполне нормально двигалась и
разговаривала, правда с небольшими ошибками.
Теоретически
это было невозможно. После проведения операции женщина была парализована первые
три месяца. Мы провели томографию и обнаружили, что область мозга, которая не
отвечала за двигательные функции взяла на себя эту задачу. Затылочная область
(обычно отвечающая за зрительную функцию) теперь работала как зона контроля
моторики.
2.
Нырятельный
рефлекс. Когда вы погружаете лицо в прохладную воду и задерживаете
дыхание, происходит снижение частоты сердечных сокращений. Это приводит к
улучшению кровоснабжения сердца и мозга и способствует лечению тахикардии.
3.Рефлекс
Арнольда. Некоторые люди начинают кашлять, если поместить в ухо,
например, ватную палочку. Это называется ушно – кашлевым рефлексом.
4.
Плохая
восприимчивость к анестезии из-за рыжего цвета волос. Такая особенность
вызвана мутировавшим рецептором меланокортином – 1. Рыжим от природы людям
необходимы повышенные дозы анестезии.
5.
Младенцы
рождаются без коленных чашечек. Они развиваются примерно к 2 годам. Вместо
коленных чашечек у них присутствует хрящ, который защищает колени.
6.
Площадь
поверхности легких примерно равна размеру теннисного корта. В
восприятии многих людей легкие представляют собой нечто похожее на воздушные
шары. Однако, они по своей структуре больше напоминают губку. С такой
структурой площадь поверхности легких, а соответственно возможно «перекачки»
воздуха увеличивается в сотни раз.
7.
Звук
вашего голоса в записи будет звучать выше, чем вам кажется на самом деле.
Звук
при разговоре передается по воздуху обратно к уху через кости черепа. Кости
передают низкие частоты лучше, чем воздух. В записи мы слышим звук, который
передается только по воздуху, минуя кости черепа. Данный факт вызывает у нас
диссонанс восприятия нашего голоса.
Есть такая категория разработчиков мобильных игр с рейтингом "до 3 лет", "до 5 лет", которые пихают рекламу буквально на каждое действие!
Нажал "играть" - реклама. Загрузилась карта, нажал трансформация из робота в машину - реклама. Поездил, хочешь назад в робота - реклама. Прошёл точку - реклама. Выполнил миссию - реклама. Вышел из боя - реклама.
При этом не отключаемая реклама секунд на 30, которую нельзя пропустить. Реклама с хитрыми крестиками, которые появляются в разных местах, на которые ещё и нажать можно не сразу. Крестики с активным полем "закрыть" в пару пикселей и если чуть-чуть не попал в пиксель - получай переход на другую рекламу.
Рекламируют в большинстве своём - такие же говно-игры с тоннами рекламы.
При этом, то, что показывается в рекламе - вообще не соответствует тому, что вы получаете в игре.
И это - для детей до 3-5 лет! И это всё валится в режиме "for kids". И вот как объяснять ребёнку, что он не может нормально поиграть потому, что дядя, который делал её - просто пидарас. Что то, что крутится красивое на картинке - обман и в игре не будет такого, а будет только новая реклама.
Даже на порносайтах рекламы меньше и она проще пропускается, чем здесь!
Ребяты, на всеобщей фейерии с обменом подарками хочу предложить обмен алкоподарками а'ля хэндмэйд. Могу предложить флакон Хреновухи и баночку кабачковой икры или баночку хрена столового. Все скрафчено своими руками. В комменты милости просим!
Обратил внимание, что многие тут пишут о себе. Конечно есть посты и про мировые проблемы, про закаты и восходы, аниме и мангу... Да много про что. Но ведь это всё о себе, о своих интересах, проблемах и тревогах. А что мог бы я сказать о себе? Родился в Москве (вот же повезло!:)), а дальше-то, всё как-то случайно. Ходил в детский сад у дома, закончил школу, глядя на родных пошёл в институт на инженера. Решил, что Бауманку, как мама и сестра, не потяну, МАДИ, как папа казался более доступным, но... Но в школе были проблемы с физикой, точнее, с физиками. После 9 класса они как бы закончились, старый надёжный физик помер, а приходили то алкаши, то студенты. По итогу, физику я знал на твёрдый 0. Который, в общем-то, и набрал на вступительных в МАДИ. И тут выяснилось, что выпускные из школы являются вступительными в МИИГАиК. Что это я не знал, но было заманчиво, особенно то, что сдавать экзамен надо будет со знакомыми преподами. Так я, вдруг, стал инженером-оптиком. Потом, по совету знакомых, которых мучало, что в преддипломный период я не работал, я пошёл продавцом в оптику, где этот знакомый и работал. После почти 9 лет, за которые я успел дорасти до ведущего специалиста, жениться, другой знакомый предложил пойти в оптовые продажи тех же линз. Ещё 2 года, и вот мне, вдруг, предлагают должность руководителя производства линз контактных. В итоге, уже 6 лет я тружусь на благо слепышей всей страны)
Я это к чему, мало кто знает в школе кем хочет быть, а уж тем более, кем на самом деле будет. Всё эти ЕГЭ заставляют судорожно определиться, выбрать предметы которые сдавать, но зачем? Много кто вот так решил, научился и работает с удовольствием в выбранном, ещё в школе, направлении?
Как гласит армейская мудрость: "Чтобы солдату в голову не приходили дурные мысли, он должен быть постоянно занят; не важно чем, главное - занят."
Это было лето 98 года. Я служил срочку в Инженерно-Саперной Роте в должности "комод" в одной из частей подмосковья. Рядом с нашим батом стояли казармы расквартированного батальона кинологов (осталась одна рота) и на лето эти казармы отдали под армейско-патриотический детский лагерь.
Что обычно надо солдату? - поесть чего-нибудь сладкого и вкусного или деньги, чтобы купить всё это, а пацанам из дет.лагеря надо что-нибудь интересное, желательно опасное для жизни и здоровья. Так завязались бартерно-рыночные отношения. Солдаты несли детям гильзы, пули, кепки, погоны, шевроны, а дети несли деньги, конфеты, чипсы и прочие "ништяки".
Заступив дежурным по роте я решил воспользоваться служебным положением и немного пообмениваться с пацанами. В моем распоряжении была КХО и комната СИБ и САО. За проёб оружия и многих средств хранившихся там, меня могли бы расстрелять, но вот чего точно никто не считал так это учебный материал, например учебные Электро-Детонаторы (с белыми полосами), они полностью безопасны, не взрываются, нужны для отработки правильных действий по снаряжению и закладке ВВ.
Короче, я набрал их и понес детям. Интерес был огромный, в считанные минуты я избавился от партии товара.
Потом тоже самое проделал мой дневальный. Мы потирали потные ручонки.
Через пару дней к нам в располагу завалился какой-то гражданский и сразу потребовал комроты. В кабинете мужик что-то поорал и ушел, а комроты выйдя вслед за ним держал в руках пучок ЭД. Комроты отдал ЭД дежурному по роте, а тот положил ЭД в СИБ и САО. Никаких последствий или разборок по этому поводу для нас не было.
Еще бы, ведь сам ротный не прочь был умыкнуть без записи кое какие спецсредства, что бывало и при мне.
*ЭД - электродетонатор
КХО - комната хранения оружия
комната СИБ и САО - Средства индивидуальной бронезащиты и Средства активной обороны.
зы. возможно я уже делал подобный пост или где-то в комментах упоминал этот случай.
Вот и мне под новый год пришло извещение о посылке. Посылка долго шла, мой санта организаторам не отписывался, и вот наконец она до меня дошла. Поехал, забрал, посылка оказалась из сибири.
С нетерпение еду домой, так как гложит любопытство, дома открываю, а там
Комментарии