Соответствовать регулярному выражению (с учетом регистра)
возвращает начальный индекс каждой подстроки startIndex
= regexp(str
,expression
)str
который соответствует шаблонам символов, заданным регулярным выражением. Если нет спичек, startIndex
- пустой массив.
[
возвращает начальный и конечный индексы всех совпадений.startIndex
,endIndex
]
= regexp(str
,expression
)
возвращает выход, заданную как out
= regexp(str
,expression
,outkey
)outkey
. Для примера, если outkey
является 'match'
, затем regexp
возвращает подстроки, которые соответствуют выражению, а не их начальным индексам.
[
возвращает выходы, заданные несколькими ключевыми словами выхода, в указанном порядке. Для примера, если вы задаете out
1,...,out
N]
= regexp(str
,expression
,outkey
1,...,outkey
N)'match'
, 'tokens'
, затем regexp
возвращает подстроки, которые совпадают со всем выражением, и лексемы, которые совпадают с частями выражения.
___ = regexp(___,'forceCellOutput')
возвращает каждый выходной аргумент в виде скалярной камеры. Камеры содержат числовые массивы или подстроки, которые описаны как выходы предыдущих синтаксисов. Можно включить любой из входов и запросить любой из выходов из предыдущих синтаксисов.
Найти слова, которые начинаются с c
, заканчивается на t
, и содержат одну или несколько гласных между ними.
str = 'bat cat can car coat court CUT ct CAT-scan'; expression = 'c[aeiou]+t'; startIndex = regexp(str,expression)
startIndex = 1×2
5 17
Регулярное выражение 'c[aeiou]+t'
задает этот шаблон:
c
должен быть первым символом.
c
должен содержать один из символов в скобках, [aeiou]
.
Шаблон в скобках должен происходить один или несколько раз, как обозначено +
оператор.
t
должен быть последним символом, без символов между шаблоном в скобках и t
.
Значения в startIndex
указать индекс первого символа каждого слова, который совпадает с регулярным выражением. Соответствующее слово cat
начинается с индекса 5 и coat
начинается с индекса 17. Слова CUT
и CAT
не совпадают, потому что они заглавные.
Найдите расположение заглавных букв и пространств в векторах символов в массиве ячеек.
str = {'Madrid, Spain','Romeo and Juliet','MATLAB is great'}; capExpr = '[A-Z]'; spaceExpr = '\s'; capStartIndex = regexp(str,capExpr); spaceStartIndex = regexp(str,spaceExpr);
capStartIndex
и spaceStartIndex
являются массивами ячеек, потому что входной str
- массив ячеек.
Просмотрите индексы для заглавных букв.
celldisp(capStartIndex)
capStartIndex{1} = 1 9 capStartIndex{2} = 1 11 capStartIndex{3} = 1 2 3 4 5 6
Просмотрите индексы для пространств.
celldisp(spaceStartIndex)
spaceStartIndex{1} = 8 spaceStartIndex{2} = 6 10 spaceStartIndex{3} = 7 10
Захватывайте слова в вектор символов, которая содержит букву x
.
str = 'EXTRA! The regexp function helps you relax.'; expression = '\w*x\w*'; matchStr = regexp(str,expression,'match')
matchStr = 1x2 cell
{'regexp'} {'relax'}
Регулярное выражение '\w*x\w*'
задает, что вектор символов:
Начинается с любого количества алфавитно-цифровых символов или символов подчеркивания, \w*
.
Содержит строчную букву x
.
Заканчивается любым количеством алфавитно-цифровых символов или символов подчеркивания после x
, включая отсутствие, как указано \w*
.
Разделите вектор символов на несколько подстрок, где каждая подстрока разделена ^
символ.
str = ['Split ^this text into ^several pieces']; expression = '\^'; splitStr = regexp(str,expression,'split')
splitStr = 1x3 cell
{'Split '} {'this text into '} {'several pieces'}
Поскольку символ creat имеет особое значение в регулярных выражениях, предварите его с символом escape, обратной косой чертой (\
). Чтобы разделить вектор символов в других разделителях, таких как точка с запятой, вы не должны включать обратную косую черту.
Захватывайте части вектора символов, которые совпадают с регулярным выражением, используя 'match'
ключевое слово и оставшиеся части, которые не совпадают с использованием 'split'
ключевое слово.
str = 'She sells sea shells by the seashore.'; expression = '[Ss]h.'; [match,noMatch] = regexp(str,expression,'match','split')
match = 1x3 cell
{'She'} {'she'} {'sho'}
noMatch = 1x4 cell
{0x0 char} {' sells sea '} {'lls by the sea'} {'re.'}
Регулярное выражение '[Ss]h.'
указывает, что:
S
или s
является первым символом.
h
- второй символ.
Третий символ может быть любым, включая пространство, на что указывает точка (.
).
Когда первый (или последний) символ в вектор символов соответствует регулярному выражению, первое (или последнее) возврат значение из 'split'
ключевое слово является пустым символьным вектором.
Опционально соберите исходный вектор символов из подстрок.
combinedStr = strjoin(noMatch,match)
combinedStr = 'She sells sea shells by the seashore.'
Найти имена HTML можно путем определения лексемы в регулярном выражении. Лексемы обозначаются круглыми скобками, ()
.
str = '<title>My Title</title><p>Here is some text.</p>'; expression = '<(\w+).*>.*</\1>'; [tokens,matches] = regexp(str,expression,'tokens','match');
Регулярное выражение <(\w+).*>.*</\1>
задает этот шаблон:
<(\w+)
находит открывающую угол скобку, за которой следуют один или несколько алфавитно-цифровых символов или символов подчеркивания. Входные \w+
в круглых скобках в лексему записывается имя HTML.
.*>
находит любое количество дополнительных символов, таких как атрибуты HTML и закрывающая угловая скобка.
</\1>
находит конечный тег, относящийся к первой лексеме (обозначается \1
). Конечный тег имеет форму </tagname>
.
Просмотрите лексемы и соответствующие подстроки.
celldisp(tokens)
tokens{1}{1} = title tokens{2}{1} = p
celldisp(matches)
matches{1} = <title>My Title</title> matches{2} = <p>Here is some text.</p>
Анализируйте даты, которые могут появиться с днем или месяцем первым, в следующих формах: mm/dd/yyyy
или dd-mm-yyyy
. Используйте именованные лексемы для идентификации каждой части даты.
str = '01/11/2000 20-02-2020 03/30/2000 16-04-2020'; expression = ['(?<month>\d+)/(?<day>\d+)/(?<year>\d+)|'... '(?<day>\d+)-(?<month>\d+)-(?<year>\d+)']; tokenNames = regexp(str,expression,'names');
Регулярное выражение задает этот шаблон:
(?<name>\d+)
находит одну или несколько числовых цифр и присваивает результат лексемы, обозначенной именем.
| - логический or
оператор, который указывает, что существует два возможных шаблона для дат. В первом шаблоне косы (/
) разделите лексемы. Во втором шаблоне дефисы (-
) разделите лексемы.
Просмотрите именованные лексемы.
for k = 1:length(tokenNames) disp(tokenNames(k)) end
month: '01' day: '11' year: '2000' month: '02' day: '20' year: '2020' month: '03' day: '30' year: '2000' month: '04' day: '16' year: '2020'
Найдите заглавный и строчный образцы слова.
По умолчанию regexp
выполняет сопоставление с учетом регистра.
str = 'A character vector with UPPERCASE and lowercase text.'; expression = '\w*case'; matchStr = regexp(str,expression,'match')
matchStr = 1x1 cell array
{'lowercase'}
Регулярное выражение задает, что вектор символов:
Начинается с любого количества алфавитно-цифровых символов или символов подчеркивания, \w*
.
Заканчивается буквенным текстом case
.
The regexpi
функция использует тот же синтаксис, что и regexp
, но выполняет аппроксимацию без учета регистра.
matchWithRegexpi = regexpi(str,expression,'match')
matchWithRegexpi = 1x2 cell
{'UPPERCASE'} {'lowercase'}
Также отключите соответствие с учетом регистра для regexp
использование 'ignorecase'
опция.
matchWithIgnorecase = regexp(str,expression,'match','ignorecase')
matchWithIgnorecase = 1x2 cell
{'UPPERCASE'} {'lowercase'}
Для нескольких выражений отключите сопоставление с учетом регистра для выбранных выражений с помощью (?i)
флаг поиска.
expression = {'(?-i)\w*case';... '(?i)\w*case'}; matchStr = regexp(str,expression,'match'); celldisp(matchStr)
matchStr{1}{1} = lowercase matchStr{2}{1} = UPPERCASE matchStr{2}{2} = lowercase
Создайте вектор символов, который содержит новую строку \n
, и проанализировать его с помощью регулярного выражения. Начиная с regexp
возвращает matchStr
как массив ячеек, содержащий текст, который имеет несколько линии, можно вывести текст из массива ячеек, чтобы отобразить все линии.
str = sprintf('abc\n de'); expression = '.*'; matchStr = regexp(str,expression,'match'); matchStr{:}
ans = 'abc de'
По умолчанию точка (.
) соответствует каждому символу, включая новую строку, и возвращает одно совпадение, эквивалентное исходному вектору символов.
Исключить символы новой строки из соответствия с помощью 'dotexceptnewline'
опция. Это возвращает отдельные совпадения для каждой линии текста.
matchStrNoNewline = regexp(str,expression,'match','dotexceptnewline')
matchStrNoNewline = 1x2 cell
{'abc'} {' de'}
Найдите первый или последний символ каждой линии, используя ^
или $
метасимволы и 'lineanchors'
опция.
expression = '.$'; lastInLine = regexp(str,expression,'match','lineanchors')
lastInLine = 1x2 cell
{'c'} {'e'}
Поиск совпадений внутри фрагмента текста и возврат выхода в скалярную камеру.
Найти слова, которые начинаются с c, заканчиваются на t и содержат одну или несколько гласных между ними. Верните начальные индексы в скалярной камере.
str = 'bat cat can car coat court CUT ct CAT-scan'; expression = 'c[aeiou]+t'; startIndex = regexp(str,expression,'forceCellOutput')
startIndex = 1x1 cell array
{[5 17]}
Чтобы получить доступ к стартовым индексам как к числовому массиву, индексируйте в камеру.
startIndex{1}
ans = 1×2
5 17
Верните совпадающие и несоответствующие подстроки. Каждый выход находится в своей скалярной камере.
[match,noMatch] = regexp(str,expression,'match','split','forceCellOutput')
match = 1x1 cell array
{1x2 cell}
noMatch = 1x1 cell array
{1x3 cell}
Чтобы получить доступ к массиву соответствий, индексируйте в match
.
match{1}
ans = 1x2 cell
{'cat'} {'coat'}
Чтобы получить доступ к несоответствующим подстрокам, индексируйте в noMatch
.
noMatch{1}
ans = 1x3 cell
{'bat '} {' can car '} {' court CUT ct C...'}
str
- Входной текстВходной текст, заданный как вектор символов, массив ячеек из векторов символов или строковые массивы. Каждый вектор символов в массиве ячеек или каждая строка в строковых массивах могут иметь любую длину и содержать любые символы.
Если str
и expression
Строковые массивы или массивы ячеек, они должны иметь одинаковые размерности.
Типы данных: string
| char
| cell
expression
- Регулярное выражениеРегулярное выражение, заданное как вектор символов, массив ячеек векторов символов или строковых массивов. Каждое выражение может содержать символы, метасимволы, операторы, лексемы и флаги, которые задают шаблоны, совпадающие с str
.
В следующих таблицах описываются элементы регулярных выражений.
Метасимволы
Метасимволы представляют буквы, области значений букв, цифры и пробел символов. Используйте их, чтобы создать обобщенный шаблон символов.
Метасимвол | Описание | Пример |
---|---|---|
| Любой один символ, включая пустое пространство |
|
| Любой символ, содержащийся в квадратных скобках. К следующим символам относятся буквально: |
|
| Любой символ, не содержащийся в квадратных скобках. К следующим символам относятся буквально: |
|
| Любой символ в области значений |
|
| Любой буквенный, числовой или символ подчеркивания. Для английских наборов символов, |
|
| Любой символ, который не является буквенным, числовым или подчеркивающим. Для английских наборов символов, |
|
| Любой символ белого пространства; эквивалентно |
|
| Любой непустой символ; эквивалентно |
|
| Любая числовая цифра; эквивалентно |
|
| Любой недигит символ; эквивалентно |
|
| Символ восьмеричного значения |
|
| Символ шестнадцатеричного значения |
|
Представление символов
Оператор | Описание |
---|---|
| Предупреждение (звуковой сигнал) |
| Клавиша Backspace |
| Подача формы |
| Новая линия |
| Возврат каретки |
| Горизонтальная вкладка |
| Вертикальная вкладка |
| Любой символ со специальным смыслом в регулярных выражениях, которым вы хотите соответствовать буквально (для примера используйте |
Кванторы
Количественники задают количество раз, когда шаблон должен происходить в соответствующем тексте.
Квантор | Количество раз, когда происходит выражение | Пример |
---|---|---|
| 0 или более раз последовательно. |
|
| 0 раз или 1 раз. |
|
| 1 или более раз последовательно. |
|
| По крайней мере
|
|
| По крайней мере
|
|
| Точно Эквивалентно |
|
Количественные значения могут появляться в трех режимах, описанных в следующей таблице. q представляет любой из количеств в предыдущей таблице.
Способ | Описание | Пример |
---|---|---|
| Жадное выражение: соответствовать как можно большему количеству символов. | Учитывая текст
|
| Ленивое выражение: соответствовать столько символов, сколько нужно. | Учитывая текст
|
| Посессивное выражение: максимально совпадает, но не повторяет никаких фрагментов текста. | Учитывая текст |
Группировка операторов
Группирующие операторы позволяют вам захватывать лексемы, применять один оператор к нескольким элементам или отключать обратное отслеживание в определенной группе.
Группировка оператора | Описание | Пример |
---|---|---|
| Группируйте элементы выражения и захватывайте лексемы. |
|
| Группируйте, но не захватывайте лексемы. |
Не группируя, |
| Группируйте атомарно. Не возвращайте данные в группу, чтобы завершить соответствие, и не захватывайте лексемы. |
|
| Совпадение выражений Если есть совпадение с Можно включать |
|
Якоря
Привязки в выражении совпадают с началом или концом входа текста или слова.
Якорь | Соответствует... | Пример |
---|---|---|
| Начало входного текста. |
|
| Конец входного текста. |
|
| Начало слова. |
|
| Конец слова. |
|
Интерполяционные утверждения
Интерполяционные утверждения ищут шаблоны, которые непосредственно предшествуют или следуют предполагаемому соответствию, но не являются частью соответствия.
Указатель остается в текущем местоположении и символах, соответствующих test
выражение не захватывается и не отбрасывается. Поэтому утверждения lookahead могут совпадать с перекрывающимися группами символов.
Интерполяционная заявка | Описание | Пример |
---|---|---|
| Смотрите вперед для символов, которые совпадают |
|
| Смотрите вперед для символов, которые не совпадают |
|
| Следите за символами, которые совпадают |
|
| Просмотрите символы, которые не совпадают с |
|
Если вы задаете значения перед выражением, операция эквивалентна логической AND
.
Операция | Описание | Пример |
---|---|---|
| Соответствовать обоим |
|
| Совпадайте с |
|
Логические и условные операторы
Логические и условные операторы позволяют вам проверить состояние заданного условия, а затем использовать результат, чтобы определить, какой шаблон, если он есть, будет соответствовать следующему. Эти операторы поддерживают логические OR
, и if
или if/else
условия.
Условия могут быть лексемами, интерполяционными операторами или динамическими выражениями формы (?@cmd)
. Динамические выражения должны возвращать логическое или числовое значение.
Условный оператор | Описание | Пример |
---|---|---|
| Совпадение выражений Если есть совпадение с |
|
| Если условие |
|
| Если условие |
|
Операторы токенов
Лексемы являются фрагментами совпадающего текста, которые вы задаете, заключая часть регулярного выражения в круглые скобки. Вы можете обратиться к лексеме по его последовательности в тексте (порядковая лексема) или назначить имена лексем для более легкого обслуживания кода и читаемых выходов.
Оператор порядкового маркера | Описание | Пример |
---|---|---|
| Захват в лексему символов, соответствующих вложенному выражению. |
|
| Соответствовать |
|
| Если на |
|
Оператор именованных маркеров | Описание | Пример |
---|---|---|
| Захват в именованную лексему символов, соответствующих вложенному выражению. |
|
| Соответствовать лексеме, на которую ссылаются |
|
| Если именованная лексема найдена, то совпадайте с |
|
Примечание
Если выражение имеет вложенные круглые скобки, MATLAB® захватывает лексемы, которые соответствуют крайнему набору круглых скобок. Для примера, учитывая шаблон поиска '(and(y|rew))'
MATLAB создает лексему для 'andrew'
но не для 'y'
или 'rew'
.
Динамические регулярные выражения
Динамические выражения позволяют вам выполнить команду MATLAB или регулярное выражение, чтобы определить текст, который будет совпадать.
Круглые скобки, заключающие динамические выражения, не создают группу захвата.
Оператор | Описание | Пример |
---|---|---|
| Синтаксический анализ При анализе |
|
| Выполните команду MATLAB, представленную |
|
| Выполните команду MATLAB, представленную |
|
В динамических выражениях для определения текста замены используйте следующие операторы.
Оператор замены | Описание |
---|---|
| Фрагмент входного текста, которая в данный момент соответствует |
| Фрагмент входного текста, которая предшествует текущему соответствию |
| Фрагмент текста входа, который следует текущему соответствию (используйте |
|
|
| Именованная лексема |
| Выход возвращен, когда MATLAB выполняет команду, |
Комментарии
Персонажи | Описание | Пример |
---|---|---|
(?#comment) | Вставьте комментарий в регулярное выражение. Текст комментария игнорируется при совпадении с входами. |
|
Флаги поиска
Флаги поиска изменяют поведение для совпадающих выражений. Альтернативой использованию флага поиска в выражении является передача option
входной параметр.
Флаг | Описание |
---|---|
(?-i) | Сопоставьте случай буквы (по умолчанию для |
(?i) | Не совпадайте буква случаем (по умолчанию для |
(?s) | Совпадайте с точкой ( |
(?-s) | Сопоставьте точку в шаблоне с любым символом, который не является символом новой строки. |
(?-m) | Соответствовать |
(?m) | Соответствовать |
(?-x) | Включите символы и комментарии при совпадении (по умолчанию). |
(?x) | Игнорируйте символы и комментарии при совпадении. Использование |
Выражение, которое изменяет флаг, может появиться либо после круглых скобок, таких как
(?i)\w*
или внутри круглых скобок и отделенных от флага двоеточием (:
), такие как
(?i:\w*)
Последний синтаксис позволяет изменять поведение на часть большего выражения.
Типы данных: char
| cell
| string
outkey
- Ключевое слово, которое указывает, какие выходы возвращать'start'
(по умолчанию) | 'end'
| 'tokenExtents'
| 'match'
| 'tokens'
| 'names'
| 'split'
Ключевое слово, которое указывает, какие выходы возвращать, заданное как один из следующих векторов символов.
Ключевое слово выхода | Возвраты |
---|---|
| Стартовые индексы всех совпадений, |
| Конечные индексы всех матчей, |
| Стартовый и конечный индексы всех лексем |
| Текст каждой подстроки, которая соответствует шаблону в |
| Текст каждого захваченной лексемы в |
| Имя и текст каждого именованной лексемы |
| Текст несоответствующих подстрок |
Типы данных: char
| string
option
- Опция поиска'once'
| 'warnings'
| 'ignorecase'
| 'emptymatch'
| 'dotexceptnewline'
| 'lineanchors'
| ...Опция поиска, заданная как вектор символов. Опции приходят парами: одна опция, которая соответствует поведению по умолчанию, и одна опция, которая позволяет вам переопределить значение по умолчанию. Задайте только одну опцию из пары. Опции могут появиться в любом порядке.
Дефолт |
Отвергнуть |
Описание |
---|---|---|
|
|
Совпадайте с выражением как можно больше раз (по умолчанию) или только один раз. |
|
|
Подавить предупреждения (по умолчанию) или отобразить их. |
|
|
Сопоставьте случай буквы (по умолчанию) или проигнорируйте случай. |
|
|
Игнорируйте совпадения нулевой длины (по умолчанию) или включите их. |
|
|
Сопоставьте точку с любым символом (по умолчанию) или со всеми, кроме newline ( |
|
| Применить |
|
|
Включать символы и комментарии при соответствии (по умолчанию) или игнорировать их. С |
Типы данных: char
| string
startIndex
- Стартовый индекс каждого совпаденияСтартовые индексы каждого соответствия, возвращенные как вектор-строка или массив ячеек, следующим образом:
Если str
и expression
являются векторами символов или строковыми скалярами, вывод представляет собой вектор-строку (или, если нет совпадений, пустой массив).
Если либо str
или expression
- массив ячеек из векторов символов или строковых массивов, а другой - вектор символов или строковый скаляр, выход - массив ячеек из векторов-строк. Выход массива ячеек имеет те же размерности что и вход массив.
Если str
и expression
являются массивами ячеек или строковыми массивами, они должны иметь одинаковые размерности. Выходы - массив ячеек с одинаковыми размерностями.
endIndex
- Конечный индекс каждого совпаденияКонечный индекс каждого соответствия, возвращаемый как вектор-строка или массив ячеек, следующим образом:
Если str
и expression
являются векторами символов или строковыми скалярами, вывод представляет собой вектор-строку (или, если нет совпадений, пустой массив).
Если либо str
или expression
- массив ячеек из векторов символов или строковых массивов, а другой - вектор символов или строковый скаляр, выход - массив ячеек из векторов-строк. Выход массива ячеек имеет те же размерности что и вход массив.
Если str
и expression
являются массивами ячеек или строковыми массивами, они должны иметь одинаковые размерности. Выходы - массив ячеек с одинаковыми размерностями.
out
- Информация о спичкахСведения о соответствии, возвращенные в виде числа, камеры, строки или массива структур. Информация в выходе зависит от значения, которое вы задаете для outkey
, следующим образом.
Ключевое слово выхода | Выход | Тип и размерности выхода |
---|---|---|
| Стартовые индексы совпадений | Для обоих
|
| Конечные индексы совпадений | |
| Стартовый и конечный индексы всех лексем | По умолчанию при возвращении всех матчей:
Когда вы задаете Если лексема ожидается с заданным индексом |
| Текст каждой подстроки, которая соответствует шаблону в | По умолчанию при возвращении всех матчей:
Когда вы задаете |
| Текст каждого захваченной лексемы в | По умолчанию при возвращении всех матчей:
Когда вы задаете Если лексема ожидается с конкретным индексом, но не найден, MATLAB возвращает пустое значение для лексемы, |
| Имя и текст каждого именованной лексемы | Для всех матчей:
|
| Текст несоответствующих подстрок | Для всех матчей:
|
Лексемы являются фрагментами совпадающего текста, которые соответствуют фрагментам регулярного выражения. Чтобы создать лексемы, заключайте часть регулярного выражения в круглые скобки.
Для примера это выражение находит дату формы dd-mmm-yyyy
, включая лексемы за день, месяц и год.
str = 'Here is a date: 01-Apr-2020'; expression = '(\d+)-(\w+)-(\d+)'; mydate = regexp(str,expression,'tokens'); mydate{:}
ans = 1×3 cell array {'01'} {'Apr'} {'2020'}
Вы можете связать имена с лексемами, чтобы они легче идентифицировались:
str = 'Here is a date: 01-Apr-2020'; expression = '(?<day>\d+)-(?<month>\w+)-(?<year>\d+)'; mydate = regexp(str,expression,'names')
mydate = struct with fields: day: '01' month: 'Apr' year: '2020'
Для получения дополнительной информации см. лексемы в регулярных выражениях».
MATLAB анализирует каждый входной вектор символов или строку слева направо, пытаясь соответствовать тексту в символьном векторе или строке с первым элементом регулярного выражения. Во время этого процесса MATLAB пропускает любой текст, который не совпадает.
Когда MATLAB находит первое соответствие, он продолжает синтаксический анализ, чтобы соответствовать второй части выражения и так далее.
contains
| regexpi
| regexprep
| regexptranslate
| replace
| strfind
| strjoin
| strrep
| strsplit
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.