Замените текст с помощью регулярного выражения
newStr = regexprep(str,expression,replace)
newStr = regexprep(str,expression,replace,option1,...optionM)
заменяет текст в newStr = regexprep(str,expression,replace)
str
, который совпадает с expression
тексту, описанному replace
. Функция regexprep
возвращает обновленный текст в newStr
.
Если str
является единственной частью текста (или вектор символа или скаляр строки), то newStr
является также единственной частью текста того же типа. newStr
является единственной частью текста, даже когда expression
или replace
являются массивом ячеек из символьных векторов или массивом строк. Когда expression
является массивом ячеек или массивом строк, regexprep
применяет первое выражение к str
, и затем применяет каждое последующее выражение к предыдущему результату.
Если str
является массивом ячеек или массивом строк, то newStr
является массивом ячеек или массивом строк с теми же размерностями как str
. Для каждого элемента str
функция regexprep
применяет каждое выражение в последовательности.
Если нет никаких соответствий к expression
, то newStr
эквивалентен str
.
изменяет поиск с помощью заданных опций. Например, задайте newStr = regexprep(str,expression,replace,option1,...optionM)
'ignorecase'
, чтобы выполнить нечувствительное к регистру соответствие.
Замените слова, которые начинаются с M
, конца с y
, и имеют по крайней мере один символ между ними.
str = 'My flowers may bloom in May'; expression = 'M(\w+)y'; replace = 'April'; newStr = regexprep(str,expression,replace)
newStr = 'My flowers may bloom in April'
Замените изменения фразы 'walk up'
путем получения букв, которые следуют за 'walk'
в лексеме.
str = 'I walk up, they walked up, we are walking up.'; expression = 'walk(\w*) up'; replace = 'ascend$1'; newStr = regexprep(str,expression,replace)
newStr = 'I ascend, they ascended, we are ascending.'
Замените строчные буквы в начале предложений с их прописными эквивалентами с помощью функции upper
.
str = 'here are two sentences. neither is capitalized.'; expression = '(^|\.)\s*.'; replace = '${upper($0)}'; newStr = regexprep(str,expression,replace)
newStr = 'Here are two sentences. Neither is capitalized.'
Регулярное выражение совпадает с отдельными символами (.
), которые следуют за началом вектора символа (^)
или период (\.)
и любой пробел (\s*)
. Выражение replace
вызывает функцию upper
для в настоящее время соответствующего символа ($0
).
Замените каждое возникновение двойной буквы в наборе векторов символов с символами '--'
.
str = { ... 'Whose woods these are I think I know.' ; ... 'His house is in the village though;' ; ... 'He will not see me stopping here' ; ... 'To watch his woods fill up with snow.'}; expression = '(.)\1'; replace = '--'; newStr = regexprep(str,expression,replace)
newStr = 4x1 cell array
{'Whose w--ds these are I think I know.'}
{'His house is in the vi--age though;' }
{'He wi-- not s-- me sto--ing here' }
{'To watch his w--ds fi-- up with snow.'}
Проигнорируйте регистр в регулярном выражении при нахождении соответствий, но подражайте регистру исходного текста при обновлении.
str = 'My flowers may bloom in May'; expression = 'M(\w+)y'; replace = 'April'; newStr = regexprep(str,expression,replace,'preservecase')
newStr = 'My flowers april bloom in April'
Вставьте текст в начале вектора символа с помощью оператора '^'
, который возвращает соответствие нулевой длины и ключевое слово 'emptymatch'
.
str = 'abc'; expression = '^'; replace = '__'; newStr = regexprep(str,expression,replace,'emptymatch')
newStr = '__abc'
str
Текст, чтобы обновитьТекст, чтобы обновить, заданный как вектор символа, массив ячеек из символьных векторов или массив строк.
Типы данных: char
| ячейка
| строка
выражение
Регулярное выражениеРегулярное выражение, заданное как вектор символа, массив ячеек из символьных векторов или массив строк. Каждое выражение может содержать символы, метасимволы, операторы, лексемы и флаги, которые задают шаблоны, чтобы соответствовать в str
.
Следующие таблицы описывают элементы регулярных выражений.
Метасимволы
Метасимволы представляют буквы, обозначают буквами области значений, цифры и пробелы. Используйте их, чтобы создать обобщенный шаблон символов.
Метасимвол | Описание | Пример |
---|---|---|
| Любой отдельный символ, включая пробел |
|
| Любой символ содержится в квадратных скобках. Следующие символы обработаны буквально: |
|
| Любой символ, не содержавший в квадратных скобках. Следующие символы обработаны буквально: |
|
| Любой символ в области значений |
|
| Любой алфавитный, числовой, или символ подчеркивания. Для английских наборов символов |
|
| Любой символ, который не является алфавитным, числовым, или подчеркивание. Для английских наборов символов |
|
| Любой пробельный символ; эквивалентный |
|
| Любой непробельный символ; эквивалентный |
|
| Любая числовая цифра; эквивалентный |
|
| Любой символ нецифры; эквивалентный |
|
| Символ восьмеричного значения |
|
| Символ шестнадцатеричного значения |
|
Символьное представление
Оператор | Описание |
---|---|
| Предупреждение (звуковой сигнал) |
| Клавиша Backspace |
| Перевод формата |
| Новая строка |
| Возврат каретки |
| Горизонтальная вкладка |
| Вертикальная вкладка |
| Любой символ с особым значением в регулярных выражениях, с которыми вы хотите совпадать буквально (например, используйте |
Кванторы
Кванторы задают число раз, шаблон должен произойти в совпавшем тексте.
Квантор | Совпадает с выражением, когда оно происходит... | Пример |
---|---|---|
| 0 или больше раз последовательно. |
|
| 0 раз или в 1 раз. |
|
| 1 или более раз последовательно. |
|
| По крайней мере, времена
|
|
| По крайней мере, времена
|
|
| Точно времена Эквивалентный |
|
Кванторы могут появиться в трех режимах, описанных в следующей таблице. q представляет любой из кванторов в предыдущей таблице.
Режим | Описание | Пример |
---|---|---|
| Жадное выражение: совпадайте с как можно большим количеством символов. | Учитывая текст
|
| Ленивое выражение: совпадайте с таким же небольшим количеством символов по мере необходимости. | Учитывая text
|
| Притяжательное выражение: соответствуйте как можно больше, но не повторно сканируйте фрагменты текста. | Учитывая text |
Группировка операторов
Группирующиеся операторы позволяют вам получать лексемы, применять один оператор к нескольким элементам или отключать отслеживание в обратном порядке в определенной группе.
Группировка оператора | Описание | Пример |
---|---|---|
| Элементы группы выражения и лексем получения. |
|
| Группа, но не получают лексемы. |
Без группировки |
| Сгруппируйтесь атомарно. Не отслеживайте в обратном порядке в группе, чтобы завершить соответствие и не получить лексемы. |
|
| Совпадайте с выражением Если существует соответствие с Можно включать |
|
Привязки
Привязки в выражении совпадают с началом или концом входного текста или слова.
Привязка | Соответствует... | Пример |
---|---|---|
| Начало входного текста. |
|
| Конец входного текста. |
|
| Начало слова. |
|
| Конец слова. |
|
Утверждения Lookaround
Утверждения Lookaround ищут шаблоны, которые сразу предшествуют или следуют за намеченным соответствием, но не являются частью соответствия.
Указатель остается в текущем местоположении, и символы, которые соответствуют выражению test
, не получены или отброшены. Поэтому предварительные утверждения могут совпадать с перекрывающимися группами символов.
Утверждение Lookaround | Описание | Пример |
---|---|---|
| Предусмотрите для символов то соответствие |
|
| Смотрите вперед для символов, которые не совпадают |
|
| Оглянитесь для символов то соответствие |
|
| Оглянитесь для символов, которые не совпадают |
|
Если вы задаете предварительное утверждение, прежде чем выражение, операция будет эквивалентна логическому AND
.
Операция | Описание | Пример |
---|---|---|
| Совпадайте и |
|
| Совпадайте |
|
Логические и условные операторы
Логические и условные операторы позволяют вам тестировать состояние данного условия, и затем использовать результат, чтобы определить который шаблон, если таковые имеются, соответствовать затем. Эти операторы поддерживают логический OR
, и условия if/else
или if
.
Условия могут быть лексемами, lookaround операторы или динамические выражения формы (?@cmd)
{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
| ячейка
| строка
замена
Текст заменыТекст замены, заданный как вектор символа, массив ячеек из символьных векторов или массив строк, можно следующим образом:
Если replace
является односимвольным вектором, и expression
является массивом ячеек из символьных векторов, то regexprep
использует тот же текст замены для каждого выражения.
Если replace
является массивом ячеек векторов символов N
, и expression
является односимвольным вектором, то regexprep
делает попытку соответствий N
и замен.
Если и replace
и expression
являются массивами ячеек из символьных векторов, то они должны содержать то же число элементов. пары regexprep
каждый элемент replace
с его соответствием с элементом в expression
.
Текст замены может включать регулярные символы, специальные символы (такие как вкладки или новые строки), или заменяющие операторы, как показано в следующих таблицах.
Заменяющий оператор | Описание |
---|---|
| Фрагмент входного текста, который в настоящее время является соответствием |
| Фрагмент входного текста, который предшествует текущему соответствию |
| Фрагмент входного текста, который следует за текущим соответствием (используют |
|
|
| Названная лексема |
| Выведите возвратился, когда MATLAB выполняет команду, |
Оператор | Описание |
---|---|
| Предупреждение (звуковой сигнал) |
| Клавиша Backspace |
| Перевод формата |
| Новая строка |
| Возврат каретки |
| Горизонтальная вкладка |
| Вертикальная вкладка |
| Любой символ с особым значением в регулярных выражениях, с которыми вы хотите совпадать буквально (например, используйте |
Типы данных: char
| ячейка
| строка
option
— Поиск или заменяющая опция'once'
| N
| 'warnings'
| 'ignorecase'
| 'preservecase'
| 'emptymatch'
| 'dotexceptnewline'
| 'lineanchors'
|...Поиск или заменяющая опция, заданная как вектор символа или целочисленное значение, как показано в следующей таблице.
Опции появляются в наборы: одна опция, которая соответствует поведению по умолчанию и одной или двум опциям, которые позволяют вам заменять значение по умолчанию. Задайте только одну опцию от набора. Опции могут появиться в любом порядке.
Значение по умолчанию |
Переопределение |
Описание |
---|---|---|
|
|
Совпадайте и заменяйте выражение максимально много раз (значение по умолчанию), или только однажды. |
|
Замените только | |
|
|
Отключите предупреждения (значение по умолчанию) или отобразите их. |
|
|
Совпадайте с регистром (значение по умолчанию) или игнорируйте регистр при соответствии и заменении. |
|
Игнорируйте регистр при соответствии, но сохраните случай соответствующих символов в исходном тексте в то время как заменяющий. | |
|
|
Проигнорируйте нулевые соответствия длины (значение по умолчанию) или включайте их. |
|
|
Точка соответствия с любым символом (значение по умолчанию) или все кроме новой строки ( |
|
| Примените |
|
|
Включайте пробелы и комментарии при соответствии (значение по умолчанию), или проигнорируйте их. С |
Типы данных: char | string
newStr
Обновленный текстОбновленный текст, возвращенный как вектор символа, массив ячеек из символьных векторов или массив строк. Тип данных newStr
совпадает с типом данных str
.
Эта функция полностью поддерживает "высокие" массивы. Для получения дополнительной информации см. Раздел "Высокие массивы".
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.