stringtranslate.com

Википедия:AutoWikiBrowser/Регулярное выражение

  • WP:РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ
  • WP:AWBREGEX

Регулярное выражение или regex это последовательность символов, определяющая шаблон для поиска в тексте. Каждое вхождение шаблона может быть автоматически заменено другой строкой, которая может включать части идентифицированного шаблона. AutoWikiBrowser использует .NET- вариант regex. [1]

Синтаксис

Якоря

Используется для привязки шаблона поиска к определенным точкам искомого текста.

Классы персонажей

Выражения, которые соответствуют любому символу в предопределенном наборе. Этот список не является исчерпывающим.

Жетоны

Токены соответствуют одному символу из указанного набора или диапазона символов.

Группы

Группы соответствуют строке символов (включая токены) в последовательности. По умолчанию совпадения с группами фиксируются для последующего использования. Группы могут быть вложены в другие группы.

Квантификаторы

Квантификаторы указывают, сколько из предыдущих токенов или групп могут быть сопоставлены.

По умолчанию квантификаторы являются «жадными», то есть они будут соответствовать как можно большему количеству символов, при этом позволяя полному выражению найти совпадение. Добавление вопросительного знака («?») после квалификатора сделает его нежадным, то есть он будет соответствовать как можно меньшему количеству символов, при этом позволяя полному выражению найти совпадение. Примеры см. в разделе #Жадность и квантификаторы.

Метасимволы и экранирующий символ

Метасимволы — это символы, имеющие особое значение в регулярных выражениях. Чтобы сопоставить эти символы буквально, их необходимо «экранировать», поставив перед ними экранирующий символ \.

Обратные ссылки

Используется для повторного сопоставления ранее захваченной группы.

Осмотритесь вокруг

Используется для проверки того, что находится до или после, без использования или захвата. («Без использования» означает, что совпадения для утверждений обхода не становятся частью заменяемой строки. В следующих примерах используется только «abc».) В регулярных выражениях .NET весь синтаксис регулярных выражений может использоваться внутри утверждения обхода.

Комментирование

Комментарии в строке поиска не влияют на результаты поиска.

Использование захваченных групп в строке замены

Захваченные группы можно вывести как часть строки замены.

Токены и группы

Токены и группы — это части регулярного выражения, за которыми может следовать квантификатор для изменения количества последовательных совпадений. Токен — это символ, специальный символ, класс символов или диапазон (например, [m-q]). Группа формируется путем заключения токенов или других групп в скобки. Все они могут быть изменены для соответствия определенному количеству раз с помощью квантификатора. Например: a?, \n+, \d{4}, [m-r]*, , и .(a?\n+\d{4}[m-r]*|not){3,7}((?:97[89]-?)?(?:\d[ -]?){9}[\dXx])

Жадность и квантификаторы

Жадность в контексте регулярных выражений описывает количество символов, которые будут сопоставлены (часто также обозначаются как «потребленные») переменной длиной части регулярного выражения – токеном или группой, за которыми следует квантификатор , который указывает количество (или диапазон чисел) токенов. Если часть регулярного выражения «жадная», она будет соответствовать как можно большему количеству символов. Если она не жадная, она будет соответствовать как можно меньшему количеству символов.

По умолчанию квантификаторы в AWB являются жадными. Чтобы сделать квантификатор нежадным, за ним должен следовать вопросительный знак. Например:

В этой строке:

[[Lorem ipsum]] dolor sit amet, [[consectetur adipisicing]] elit, sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua.

это выражение:

\[\[.*\]\]

будет соответствовать .[[Lorem ipsum]] dolor sit amet, [[consectetur adipisicing]]

Это выражение:

\[\[.*?\]\]

будет соответствовать [[Lorem ipsum]]и [[consectetur adipisicing]].

Будьте осторожны с выражениями типа , центральная группа захвата которых будет охватывать более одной группы ссылок, если выполняются внешние условия:(\w)(<ref[^<>]*>.*?</ref>)([,.:;])
sed do eiusmod tempor<ref>reference</ref> incididunt ut <ref>reference 2</ref>. labore

Примеры

Образцы шаблонов

Часто используемые выражения

Совпадение внутри < ref ></ ref > Регулярное выражение : < ref [^>] *>( [^<] | < [^/] |</ [^r] |</ r [^e] |</ re [^f] |</ ref [^>] )+</ ref >   
Сопоставление внутри < ref ></ ref > с использованием нотации (?! not match ) Regex : < ref [^>] *>( [^<] | < (?! /ref> ) )+</ ref >         
Соответствует шаблону {{ ... }}, возможно, с шаблонами внутри него , но внутри этих шаблонов нет Regex : {{ ([^ { ]| { [^ { ]| {{ [^ {} ]+ }} )+ }}             
Сопоставление слов и пробелов Регулярное выражение : [\w\s] +    
Соответствие URL-адресам в квадратных скобках Regex : \ [(https?://[^\]\[<>\s"] +) *((? < = ) [^\n\]] *|) \]     

Советы и рекомендации

Параметры поведения регулярных выражений

Regex предлагает несколько опций для изменения поведения по умолчанию. [3] Пять из этих опций можно контролировать с помощью встроенных выражений, как описано ниже. Четыре из этих опций также можно применить ко всему шаблону поиска с помощью флажков в инструментах AWB «Найти и заменить». По умолчанию все опции отключены.

  1. ^ Для сопоставления пробельных символов при включенной опции IgnorePatternWhitespace они должны быть идентифицированы с помощью классов символов, т. е. \s(пробел), \n(новая строка) или \t(табуляция). (Чтобы сопоставить только пробел, но не табуляцию или новую строку, используйте шаблон \p{Zs}.)

Встроенный синтаксис

Оператор options (?flags-flags)включает опции, заданные "flags" (или выключает, для любых флагов, которым предшествует знак минус) от точки, где появляется оператор, до конца шаблона или до точки, где заданная опция отменяется другим оператором options. Например:

(? im - s ) #Включите опции IgnoreCase (i) и MultiLine (m) и выключите опцию SingleLine (s), отсюда и до конца шаблона или до отмены 

В качестве альтернативы синтаксис (?flags-flags:pattern)применяет указанные параметры только к той части шаблона, которая находится внутри скобок:

(? x : pattern1 ) pattern2 #Применить параметр IgnorePatternWhitespace (x) к pattern1, но не к pattern2 

Макросы редактирования пользовательских сочетаний клавиш

Вы можете создать свои собственные макросы редактирования сочетаний клавиш . Когда вы редактируете страницу, вы можете ввести свои сочетания клавиш макроса на странице в любом месте, где вы хотите, чтобы AWB действовал на них.

Например, вы изучаете страницу в поле редактирования AWB. Вы видите многочисленные элементы, такие как добавление , вставка переносов строк , комментирование целых строк , вставка названий штатов, вставка заголовков уровня 2, 3 или даже 4 и т. д. Все это можно сделать, создав свои сочетания клавиш макроса.{{fact}}<br /><!--comment--><ref>Insert footnote text here</ref>

  1. Создайте правило . См. Поиск и замена, Дополнительные настройки .
  2. Отредактируйте страницу в поле редактирования . Вставьте макроклавиши быстрого доступа для редактирования в любое место страницы, где вы хотите, чтобы AWB внес изменения за вас.
  3. Повторно проанализируйте страницу . Щелкните правой кнопкой мыши по полю редактирования и выберите Повторно проанализируйте в контекстном меню. Затем AWB повторно проверит вашу страницу с помощью сочетания клавиш макроса, найдет сочетание клавиш и выполнит действие, указанное вами в правиле.

Имя макроклавиши быстрого доступа может быть любым. Но лучше всего попытаться сделать его уникальным, чтобы оно не мешало никакому другому процессу, который AWB может найти и предложить. По этой причине лучше всего использовать /// с последующим набором строчных символов, которые вы можете легко запомнить (строчные используются для того, чтобы вам не приходилось использовать клавишу Shift). Затем вы можете вручную ввести эти созданные вами макроклавиши быстрого доступа на страницу или с помощью функции вставки еще в контекстном меню поля редактирования . Причина, по которой мы используем три '/', заключается в том, что AWB не будет путать веб-адреса/url на странице при повторном анализе.

Примеры:

Создайте правило как регулярное выражение.

Эффективность

Эффективность — это то, сколько времени требуется движку регулярных выражений для поиска совпадений, что является функцией того, сколько символов движку приходится читать, включая возврат. Сложные регулярные выражения часто можно построить несколькими способами, все с одинаковыми выходами, но с сильно различающейся эффективностью. Если AWB тратит много времени на генерацию результатов из-за правила регулярных выражений:

Ссылки

  1. ^ adegeo (18 июня 2022 г.). "Язык регулярных выражений - Краткий справочник". learn.microsoft.com . Архивировано из оригинала 2023-02-05 . Получено 2023-02-05 .
  2. ^ "Regex Tutorial – Unicode Characters and Properties". www.regular-expressions.info . Архивировано из оригинала 19 декабря 2022 г. Получено 3 января 2023 г.
  3. ^ adegeo (29 июня 2022 г.). "Параметры регулярного выражения". learn.microsoft.com . Архивировано из оригинала 2023-02-05 . Получено 2023-02-05 .

Внешние ссылки

Онлайн-инструменты для тестирования регулярных выражений

Инструмент для тестирования регулярных выражений на рабочем столе

Документация по регулярным выражениям