Совпадайте с (нечувствительным к регистру) регулярным выражением
startIndex = regexpi(str,expression)[startIndex,endIndex]
= regexpi(str,expression)out = regexpi(str,expression,outkey)[out1,...,outN]
= regexpi(str,expression,outkey1,...,outkeyN)___ = regexpi(___,option1,...,optionM)___ = regexpi(___,'forceCellOutput') возвращает начальное значение индекса каждой подстроки startIndex = regexpi(str,expression)str, который совпадает с символьными шаблонами, заданными регулярным выражением без отношения к регистру. Если нет никаких соответствий, startIndex является пустым массивом.
[ возвращает запуск и конечные индексы всех соответствий.startIndex,endIndex]
= regexpi(str,expression)
возвращает выходной параметр, заданный out = regexpi(str,expression,outkey)outkey. Например, если outkey является 'match', то regexpi возвращает подстроки, которые совпадают с выражением, а не их начальными значениями индекса.
[ возвращает выходные параметры, заданные несколькими выходными ключевыми словами, в заданном порядке. Например, если вы задаете out1,...,outN]
= regexpi(str,expression,outkey1,...,outkeyN)'match', 'tokens', затем regexpi возвращает подстроки, которые совпадают с целым выражением и лексемами, которые совпадают с частями выражения.
___ = regexpi(___,'forceCellOutput') возвращает каждый выходной аргумент как скалярную ячейку. Ячейки содержат числовые массивы или подстроки, которые описаны как выходные параметры предыдущих синтаксисов. Можно включать любые из входных параметров и запросить любые из выходных параметров от предыдущих синтаксисов.
Найдите слова, которые запускаются с c, конца с t, и содержат один или несколько гласных между ними.
str = 'bat cat can car COAT court cut ct CAT-scan'; expression = 'c[aeiou]+t'; startIndex = regexpi(str,expression)
startIndex = 1×4
5 17 28 35
Значения в startIndex указывают на индекс первого символа каждого слова, которое совпадает с регулярным выражением.
Регулярное выражение 'c[aeiou]+t' задает этот шаблон:
c должен быть первым символом.
c должен сопровождаться одним из символов в скобках, [aeiou].
Шаблон на кронштейнах должен произойти один или несколько раз, как обозначено оператором +.
t должен быть последним знаком без символов между шаблоном на кронштейнах и t.
Совпадайте с регистром всего или часть выражения.
По умолчанию regexpi выполняет нечувствительное к регистру соответствие.
str = 'A character vector with UPPERCASE and lowercase text.'; expression = '\w*case'; matchStr = regexpi(str,expression,'match')
matchStr = 1x2 cell array
{'UPPERCASE'} {'lowercase'}
Используйте функцию regexp с тем же синтаксисом как regexpi, чтобы выполнить чувствительное к регистру соответствие.
matchWithRegexp = regexp(str,expression,'match')matchWithRegexp = 1x1 cell array
{'lowercase'}
Чтобы отключить чувствительное к регистру соответствие для regexp, используйте опцию 'ignorecase'.
matchWithIgnorecase = regexp(str,expression,'match','ignorecase')
matchWithIgnorecase = 1x2 cell array
{'UPPERCASE'} {'lowercase'}
Для нескольких выражений включите и отключите нечувствительное к регистру соответствие для выбранных выражений с помощью (?i) и флагов поиска (?-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
str Введите текстВведите текст, заданный как вектор символов, массив ячеек из символьных векторов или массив строк. Каждый вектор символов в массиве ячеек или каждая строка в массиве строк, может иметь любую длину и содержать любые символы.
Если str и expression являются строковыми массивами или массивами ячеек, у них должны быть те же размерности.
Типы данных: string | char | cell
выражение Регулярное выражениеРегулярное выражение, заданное как вектор символов, массив ячеек из символьных векторов или массив строк. Каждое выражение может содержать символы, метасимволы, операторы, лексемы и флаги, которые задают шаблоны, чтобы соответствовать в str.
Следующие таблицы описывают элементы регулярных выражений.
Метасимволы
Метасимволы представляют буквы, обозначают буквами области значений, цифры и пробелы. Используйте их, чтобы создать обобщенный шаблон символов.
Метасимвол | Описание | Пример |
|---|---|---|
| Любой отдельный символ, включая пробел |
|
| Любой символ содержится в квадратных скобках. Следующие символы обработаны буквально: |
|
| Любой символ, не содержавший в квадратных скобках. Следующие символы обработаны буквально: |
|
| Любой символ в области значений |
|
| Любой алфавитный, числовой, или символ подчеркивания. Для английских наборов символов |
|
| Любой символ, который не является алфавитным, числовым, или подчеркивание. Для английских наборов символов |
|
| Любой пробельный символ; эквивалентный |
|
| Любой непробельный символ; эквивалентный |
|
| Любая числовая цифра; эквивалентный |
|
| Любой символ нецифры; эквивалентный |
|
| Символ восьмеричного значения |
|
| Символ шестнадцатеричного значения |
|
Символьное представление
Оператор | Описание |
|---|---|
| Предупреждение (звуковой сигнал) |
| Клавиша Backspace |
| Перевод формата |
| Новая строка |
| Возврат каретки |
| Горизонтальная вкладка |
| Вертикальная вкладка |
| Любой символ с особым значением в регулярных выражениях, с которыми вы хотите совпадать буквально (например, используйте |
Кванторы
Кванторы задают число раз, шаблон должен произойти в совпавшем тексте.
Квантор | Совпадает с выражением, когда оно происходит... | Пример |
|---|---|---|
| 0 или больше раз последовательно. |
|
| 0 раз или в 1 раз. |
|
| 1 или более раз последовательно. |
|
| По крайней мере, времена
|
|
| По крайней мере, времена
|
|
| Точно времена Эквивалентный |
|
Кванторы могут появиться в трех режимах, описанных в следующей таблице. q представляет любой из кванторов в предыдущей таблице.
Режим | Описание | Пример |
|---|---|---|
| Жадное выражение: совпадайте с как можно большим количеством символов. | Учитывая текст |
| Ленивое выражение: совпадайте с таким же небольшим количеством символов по мере необходимости. | Учитывая text |
| Притяжательное выражение: соответствуйте как можно больше, но не повторно сканируйте фрагменты текста. | Учитывая text |
Группировка операторов
Группирующиеся операторы позволяют вам получать лексемы, применять один оператор к нескольким элементам или отключать отслеживание в обратном порядке в определенной группе.
Группировка оператора | Описание | Пример |
|---|---|---|
| Элементы группы выражения и лексем получения. |
|
| Группа, но не получают лексемы. |
Без группировки |
| Сгруппируйтесь атомарно. Не отслеживайте в обратном порядке в группе, чтобы завершить соответствие и не получить лексемы. |
|
| Совпадайте с выражением Если существует соответствие с Можно включать |
|
Привязки
Привязки в выражении совпадают с началом или концом входного текста или слова.
Привязка | Соответствует... | Пример |
|---|---|---|
| Начало входного текста. |
|
| Конец входного текста. |
|
| Начало слова. |
|
| Конец слова. |
|
Утверждения Lookaround
Утверждения Lookaround ищут шаблоны, которые сразу предшествуют или следуют за намеченным соответствием, но не являются частью соответствия.
Указатель остается в текущем местоположении, и символы, которые соответствуют выражению test, не получены или отброшены. Поэтому предварительные утверждения могут совпадать с перекрывающимися группами символов.
Утверждение Lookaround | Описание | Пример |
|---|---|---|
| Предусмотрите для символов то соответствие |
|
| Смотрите вперед для символов, которые не совпадают |
|
| Оглянитесь для символов то соответствие |
|
| Оглянитесь для символов, которые не совпадают |
|
Если вы задаете предварительное утверждение, прежде чем выражение, операция будет эквивалентна логическому AND.
Операция | Описание | Пример |
|---|---|---|
| Совпадайте и |
|
| Совпадайте |
|
Логические и условные операторы
Логические и условные операторы позволяют вам тестировать состояние данного условия, и затем использовать результат, чтобы определить который шаблон, если таковые имеются, соответствовать затем. Эти операторы поддерживают логический OR, и условия if/else или if.
Условия могут быть лексемами, lookaround операторы или динамические выражения формы (?@cmd). Динамические выражения должны возвратить логическое или числовое значение.
Условный оператор | Описание | Пример |
|---|---|---|
| Совпадайте с выражением Если существует соответствие с |
|
| Если условие |
|
| Если условие |
|
Маркерные операторы
Лексемы являются фрагментами совпадающего текста, который вы задаете путем включения части регулярного выражения в круглых скобках. Можно обратиться к лексеме ее последовательностью в тексте (порядковая лексема) или присвоить имена к лексемам для более легкого обслуживания кода и читаемого вывода.
Порядковый маркерный оператор | Описание | Пример |
|---|---|---|
| Получите в лексеме символы, которые совпадают с заключенным в нихом выражение. |
|
| Совпадайте |
|
| Если |
|
Названный маркерный оператор | Описание | Пример |
|---|---|---|
| Получите в именованной лексеме символы, которые совпадают с заключенным в нихом выражение. |
|
| Совпадайте с лексемой, упомянутой |
|
| Если именованная лексема найдена, то совпадайте |
|
Если выражение вложило круглые скобки, MATLAB® получает лексемы, которые соответствуют наиболее удаленному набору круглых скобок. Например, учитывая поисковый шаблон '(and(y|rew))', MATLAB создает лексему для 'andrew', но не для 'y' или 'rew'.
Динамические регулярные выражения
Динамические выражения позволяют вам выполнять команду MATLAB или регулярное выражение, чтобы определить текст, чтобы соответствовать.
Круглые скобки, которые заключают динамические выражения, не создают группу фиксации.
Оператор | Описание | Пример |
|---|---|---|
| Проанализируйте Когда проанализировано, |
|
| Выполните команду MATLAB, представленную |
|
| Выполните команду MATLAB, представленную |
|
В рамках динамических выражений используйте следующие операторы, чтобы задать текст замены.
Заменяющий оператор | Описание |
|---|---|
| Фрагмент входного текста, который является в настоящее время соответствием |
| Фрагмент входного текста, который предшествует текущему соответствию |
| Фрагмент входного текста, который следует за текущим соответствием (используют |
|
|
| Названная лексема |
| Выведите возвратился, когда MATLAB выполняет команду, |
Комментарии
'characters' | Описание | Пример |
|---|---|---|
(?#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' | 'matchcase' | 'emptymatch' | 'dotexceptnewline' | 'lineanchors' |...Параметр поиска, заданный как вектор символов. Опции появляются в пары: одна опция, которая соответствует поведению по умолчанию и одной опции, которая позволяет вам заменять значение по умолчанию. Задайте только одну опцию от пары. Опции могут появиться в любом порядке.
|
Значение по умолчанию |
Переопределение |
Описание |
|---|---|---|
|
|
|
Совпадайте с выражением максимально много раз (значение по умолчанию), или только однажды. |
|
|
|
Отключите предупреждения (значение по умолчанию) или отобразите их. |
|
|
|
Проигнорируйте регистр (значение по умолчанию) или случай соответствия. |
|
|
|
Проигнорируйте нулевые соответствия длины (значение по умолчанию) или включайте их. |
|
|
|
Точка соответствия с любым символом (значение по умолчанию) или все кроме новой строки ( |
|
|
| Примените |
|
|
|
Включайте пробелы и комментарии при соответствии (значение по умолчанию), или проигнорируйте их. С |
Типы данных: char
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 =
'01' 'April' '2020'Можно сопоставить имена с лексемами так, чтобы они более легко идентифицировались:
str = 'Here is a date: 01-Apr-2020'; expression = '(?<day>\d+)-(?<month>\w+)-(?<year>\d+)'; mydate = regexp(str,expression,'names')
mydate =
day: '01'
month: 'Apr'
year: '2020'Для получения дополнительной информации смотрите Лексемы в Регулярных выражениях.
contains | regexp | regexprep | regexptranslate | replace | strfind | strjoin | strrep | strsplit
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.