Регулярное выражение или 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 «Найти и заменить». По умолчанию все опции отключены.
\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>
Имя макроклавиши быстрого доступа может быть любым. Но лучше всего попытаться сделать его уникальным, чтобы оно не мешало никакому другому процессу, который AWB может найти и предложить. По этой причине лучше всего использовать /// с последующим набором строчных символов, которые вы можете легко запомнить (строчные используются для того, чтобы вам не приходилось использовать клавишу Shift). Затем вы можете вручную ввести эти созданные вами макроклавиши быстрого доступа на страницу или с помощью функции вставки еще в контекстном меню поля редактирования . Причина, по которой мы используем три '/', заключается в том, что AWB не будет путать веб-адреса/url на странице при повторном анализе.
Примеры:
Создайте правило как регулярное выражение.
Эффективность — это то, сколько времени требуется движку регулярных выражений для поиска совпадений, что является функцией того, сколько символов движку приходится читать, включая возврат. Сложные регулярные выражения часто можно построить несколькими способами, все с одинаковыми выходами, но с сильно различающейся эффективностью. Если AWB тратит много времени на генерацию результатов из-за правила регулярных выражений: