Шаблон, который совпадает с заданным регулярным выражением
создает шаблон, который совпадает с регулярным выражением.pat
= regexpPattern(expression
)
задает дополнительные опции с одним или несколькими аргументами пары "имя-значение". Например, можно задать pat
= regexpPattern(expression
,Name,Value
)'IgnoreCase'
как true
игнорировать регистр при соответствии..
Используйте regexpPattern
задавать шаблоны с помощью регулярных выражений, которые могут использоваться в качестве входных параметров для ищущих текст функций.
Найдите слова, которые запускаются с c
, закончите t
, и содержите один или несколько промежуточных гласных.
txt = "bat cat can car coat court CUT ct CAT-scan"; expression = 'c[aeiou]+t';
Регулярное выражение 'c[aeiou]+t'
задает этот шаблон:
c
должен быть первый символ.
c
должен сопровождаться одним из символов в скобках, [aeiou]
.
Шаблон на кронштейнах должен произойти один или несколько раз, как обозначено +
оператор.
t
должен быть последний знак, без символов между шаблоном на кронштейнах и t
.
Извлеките шаблон. Отметьте, слова CUT
и CAT
не соответствуйте, потому что они являются прописными.
pat = regexpPattern(expression); extract(txt,pat)
ans = 2x1 string
"cat"
"coat"
Шаблоны, созданные с помощью regexpPattern
может быть объединен с другими функциями шаблона, чтобы создать более сложные шаблоны. Используйте whitespacePattern
и lettersPattern
создать новый шаблон, который также распознает слова после соответствий регулярного выражения, и затем извлекает новый шаблон.
pat = regexpPattern(expression) + whitespacePattern + lettersPattern; extract(txt,pat)
ans = 2x1 string
"cat can"
"coat court"
newline
'characters'Создайте строку, содержащую newline
символ. Используйте регулярное выражение '.'
совпадать с любым символом кроме newline
'characters'.
txt = "First Line" + newline + "Second Line"
txt = "First Line Second Line"
expression = '.+';
Регулярное выражение '.+'
соответствия один или несколько из любого символа включая newline
'characters'. Рассчитайте, со сколько раз совпадает шаблон.
pat = regexpPattern(expression); count(txt,pat)
ans = 1
Создайте новый образец регулярного выражения, но на этот раз задайте DotExceptNewline
как true
так, чтобы шаблон не совпадал с newline
'characters'. Рассчитайте, со сколько раз совпадает шаблон.
pat = regexpPattern(expression,"DotExceptNewline",true);
count(txt,pat)
ans = 2
Создайте txt
как строка.
txt = "Hello World";
Выражение '. *'
только отдельные символы соответствий из-за пробела между .
и *
. Создайте шаблон, чтобы совпадать с регулярным выражением '. *'
, и затем извлеките шаблон.
expression = '. *';
pat = regexpPattern(expression);
extract(txt,pat)
ans = 10x1 string
"H"
"e"
"l"
"l"
"o "
"W"
"o"
"r"
"l"
"d"
Создайте новый образец регулярного выражения, но на этот раз задайте FreeSpacing
как true
проигнорировать пробелы в регулярном выражении. Извлеките новый шаблон.
pat = regexpPattern(expression,"FreeSpacing",true);
extract(txt,pat)
ans = "Hello World"
Найдите слова, которые запускаются с c
, закончите t
, и содержите один или несколько промежуточных гласных, независимо от случая.
txt = "bat cat can car coat court CUT ct CAT-scan"; expression = 'c[aeiou]+t';
Регулярное выражение 'c[aeiou]+t'
задает этот шаблон:
c
должен быть первый символ.
c
должен сопровождаться одним из символов в скобках, [aeiou]
.
Шаблон на кронштейнах должен произойти один или несколько раз, как обозначено +
оператор.
t
должен быть последний знак, без символов между шаблоном на кронштейнах и t
.
Извлеките шаблон. Обратите внимание на то, что CUT слов и CAT не соответствуют, потому что они являются прописными.
pat = regexpPattern(expression); extract(txt,pat)
ans = 2x1 string
"cat"
"coat"
Создайте новый образец регулярного выражения, но на этот раз задайте IgnoreCase
как true
игнорировать регистр с регулярным выражением. Извлеките новый шаблон.
pat = regexpPattern(expression,"IgnoreCase",true);
extract(txt,pat)
ans = 4x1 string
"cat"
"coat"
"CUT"
"CAT"
^
и $
Привязки как линия или текстовые привязкиМетасимволы ^
и $
может использоваться, чтобы задать привязки к линии или текстовые привязки. Поведение, что regexpPattern
использование задано Anchors
опция.
Создайте txt
как строка, содержащая newline
'characters'.
txt = "cat" + newline + "bat" + newline + "rat";
Регулярное выражение '^. $ +?' совпадает с одним или несколькими символами между двумя привязками. Создайте шаблон для этого регулярного выражения и задайте Anchors
как “text”
так, чтобы ^ и привязки $ были обработаны как текстовые привязки. Извлеките шаблон.
expression = '^.+?$'; pat = regexpPattern(expression,"Anchors","text"); extract(txt,pat)
ans = "cat bat rat"
Создайте новый образец регулярного выражения, но на этот раз задайте Anchors
как “line”
так, чтобы ^ и привязки $ были обработаны как привязки к линии. Извлеките новый шаблон.
pat = regexpPattern(expression,"Anchors","line"); extract(txt,pat)
ans = 3x1 string
"cat"
"bat"
"rat"
expression
— Регулярное выражениеРегулярное выражение в виде вектора символов, массива ячеек из символьных векторов или массива строк. Каждое выражение может содержать символы, метасимволы, операторы, лексемы и флаги, которые задают шаблоны, чтобы соответствовать в str
.
Следующие таблицы описывают элементы регулярных выражений.
Метасимволы
Метасимволы представляют буквы, обозначают буквами области значений, цифры и пробелы. Используйте их, чтобы создать обобщенный шаблон символов.
Метасимвол | Описание | Пример |
---|---|---|
| Любой отдельный символ, включая пробел |
|
| Любой символ содержится в квадратных скобках. Следующие символы обработаны буквально: |
|
| Любой символ, не содержавший в квадратных скобках. Следующие символы обработаны буквально: |
|
| Любой символ в области значений |
|
| Любой алфавитный, числовой, или символ подчеркивания. Для английских наборов символов, |
|
| Любой символ, который не является алфавитным, числовым, или подчеркивание. Для английских наборов символов, |
|
| Любой пробельный символ; эквивалентный |
|
| Любой непробельный символ; эквивалентный |
|
| Любая числовая цифра; эквивалентный |
|
| Любой символ нецифры; эквивалентный |
|
| Символ восьмеричного значения |
|
| Символ шестнадцатеричного значения |
|
Символьное представление
Оператор | Описание |
---|---|
| Предупреждение (звуковой сигнал) |
| Клавиша Backspace |
| Перевод формата |
| Новая строка |
| Возврат каретки |
| Горизонтальная табуляция |
| Вертикальная табуляция |
| Любой символ с особым значением в регулярных выражениях, с которыми вы хотите совпадать буквально (например, используйте |
Кванторы
Кванторы задают число раз, шаблон должен произойти в совпавшем тексте. expr
представляет любое регулярное выражение.
Квантор | Выражение числа раз происходит | Пример |
---|---|---|
| 0 или больше раз последовательно. |
|
| 0 раз или в 1 раз. |
|
| 1 или более раз последовательно. |
|
| По крайней мере {0,1} |
|
| По крайней мере {0,} |
|
| Точно Эквивалентный |
|
Кванторы могут появиться в трех режимах, описанных в следующей таблице. q представляет любой из кванторов в предыдущей таблице.
Режим | Описание | Пример |
---|---|---|
| Жадное выражение: совпадайте с как можно большим количеством символов. | Учитывая текст
|
| Ленивое выражение: совпадайте с таким же небольшим количеством символов по мере необходимости. | Учитывая text
|
| Притяжательное выражение: соответствуйте как можно больше, но не повторно сканируйте фрагменты текста. | Учитывая text |
Группировка операторов
Группирующиеся операторы позволяют вам получать лексемы, применять один оператор к нескольким элементам или отключать отслеживание в обратном порядке в определенной группе. Лексемы являются фрагментами совпадающего текста, который вы задаете путем включения части регулярного выражения в круглых скобках.
Группировка оператора | Описание | Пример |
---|---|---|
| Элементы группы выражения и лексем получения. |
|
| Группа, но не получают лексемы. |
Без группировки, |
| Сгруппируйтесь атомарно. Не отслеживайте в обратном порядке в группе, чтобы завершить соответствие и не получить лексемы. |
|
| Совпадайте с выражением Если существует соответствие с Можно включать |
|
Привязки
Привязки в выражении совпадают с началом или концом входного текста или слова.
Привязка | Соответствует... | Пример |
---|---|---|
| Начало входного текста. |
|
| Конец входного текста. |
|
| Начало слова. |
|
| Конец слова. |
|
Утверждения Lookaround
Утверждения Lookaround ищут шаблоны, которые сразу предшествуют или следуют за намеченным соответствием, но не являются частью соответствия.
Указатель остается в текущем местоположении и символах, которые соответствуют test
выражение не получено или отброшено. Поэтому предварительные утверждения могут совпадать с перекрывающимися группами символов.
Утверждение Lookaround | Описание | Пример |
---|---|---|
| Предусмотрите для символов то соответствие |
|
| Смотрите вперед для символов, которые не совпадают |
|
| Оглянитесь для символов то соответствие |
|
| Оглянитесь для символов, которые не совпадают |
|
Если вы задаете предварительное утверждение, прежде чем выражение, операция будет эквивалентна логическому AND
.
Операция | Описание | Пример |
---|---|---|
| Совпадайте с обоими |
|
| Совпадайте |
|
Логические и условные операторы
Логические и условные операторы позволяют вам протестировать состояние данного условия, и затем использовать результат, чтобы определить который шаблон, если таковые имеются, соответствовать затем. Эти операторы поддерживают логический OR
, и if
или if/else
условия.
Условиями могут быть лексемы, lookaround операторы или динамические выражения формы (?@cmd)
. Динамические выражения должны возвратить логическое или числовое значение.
Условный оператор | Описание | Пример |
---|---|---|
| Совпадайте с выражением Если существует соответствие с |
|
| Если условие |
|
| Если условие |
|
Маркерные операторы
Лексемы являются фрагментами совпадающего текста, который вы задаете путем включения части регулярного выражения в круглых скобках. Можно обратиться к лексеме ее последовательностью в тексте (порядковая лексема) или присвоить имена к лексемам для более легкого обслуживания кода и читаемого выхода.
Порядковый маркерный оператор | Описание | Пример |
---|---|---|
| Получите в лексеме символы, которые совпадают с заключенным в нихом выражение. |
|
Названный маркерный оператор | Описание | Пример |
---|---|---|
| Получите в именованной лексеме символы, которые совпадают с заключенным в нихом выражение. |
|
Примечание
Если выражение вложило круглые скобки, MATLAB® получает лексемы, которые соответствуют наиболее удаленному набору круглых скобок. Например, учитывая поисковый шаблон '(and(y|rew))'
, MATLAB создает лексему для 'andrew'
но не для 'y'
или 'rew'
.
Комментарии
'characters' | Описание | Пример |
---|---|---|
(?#comment) | Вставьте комментарий в регулярное выражение. Текст комментария проигнорирован при соответствии с входом. |
|
Поисковые флаги
Поисковые флаги изменяют поведение для соответствия с выражениями. Альтернатива использованию поискового флага в рамках выражения должна передать option
входной параметр.
Флаг | Описание |
---|---|
(?-i) | Совпадайте с регистром (значение по умолчанию для |
(?i) | Не совпадайте с регистром (значение по умолчанию для |
(?s) | Точка соответствия ( |
(?-s) | Точка соответствия в шаблоне с любым символом, который не является символом новой строки. |
(?-m) | Совпадайте |
(?m) | Совпадайте |
(?-x) | Включайте пробелы и комментарии при соответствии (значение по умолчанию). |
(?x) | Проигнорируйте пробелы и комментарии при соответствии. |
Выражение, которое изменяет флаг, может появиться любой после круглых скобок, такой как
(?i)\w*
или в круглых скобках и разделенный от флага с двоеточием (:
), такой как
(?i:\w*)
Последний синтаксис позволяет вам изменять поведение для части большего выражения.
Типы данных: char |
cell
| string
Примечание
regexpPattern
не поддерживает обратные ссылки, условия на основе обратных ссылок и динамические регулярные выражения.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'DotExceptNewline',true,'FreeSpacing',false
'DotExceptNewline'
— Точка, соответствующая новых строкfalse
или 0
(значение по умолчанию) | true
или 1
Точка, соответствующая newline
символ в виде разделенной запятой пары, состоящей из 'DotExceptNewline'
и логический скаляр. Установите эту опцию на 0 (FALSE) не использовать newline
символы от точечного соответствия.
Пример: pat = regexpPattern('m.','DotExceptNewline',true)
'FreeSpacing'
— Соответствие с пробеломfalse
или 0
(значение по умолчанию) | true
или 1
Соответствие с пробельным символом в виде разделенной запятой пары, состоящей из 'FreeSpacing'
и логический скаляр. Установите эту опцию на 1 (TRUE) не использовать пробельные символы и комментарии при соответствии.
Пример: pat = regexpPattern('m.','FreeSpacing',false)
'IgnoreCase'
— Игнорируйте регистр при соответствииfalse
или 0
(значение по умолчанию) | true
или 1
Игнорируйте регистр при соответствии в виде разделенной запятой пары, состоящей из 'IgnoreCase'
и логический скаляр. Установите эту опцию на 1 (TRUE) соответствовать независимо от случая.
Пример: pat = regexpPattern('m.','IgnoreCase',true)
'Anchors'
— Обработка метасимвола'text'
(значение по умолчанию) | 'line'
Обработка метасимвола в виде разделенной запятой пары, состоящей из 'Anchors'
и одно из этих значений:
Значение | Описание |
---|---|
'text' | Обработайте метасимволы ^ и $ как текстовые привязки. Это регулярное выражение привязок соответствует к началу или концу текста, который может охватить несколько линий. |
'line' | Обработайте метасимволы ^ и $ как привязки к линии. Это регулярное выражение привязок соответствует к началу или концу линий в тексте. Эта опция полезна, когда вы имеете многострочный текст и не хотите, чтобы соответствия охватили несколько линий. |
Пример: pat = regexpPattern('\d+','Anchors','line')
pat
— Выражение шаблонаВыражение шаблона, возвращенное как pattern
объект.
contains
| extract
| maskedPattern
| namedPattern
| pattern
| regexp
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.