Замените текст в словах документов с помощью регулярного выражения
Text Analytics Toolbox™ обеспечивает функции для общего текста, предварительно обрабатывающего шаги. Например, чтобы удалить пунктуацию и символы символа, используйте erasePunctuation
или удалить слова основы с помощью Носильщика stemmer, использовать normalizeWords
. Для получения дополнительной информации смотрите текстовую Подготовку данных.
newDocuments = regexprep(documents,expression,replace)
замены все случаи регулярного выражения newDocuments
= regexprep(documents
,expression
,replace
)expression
в словах documents
с текстом в replace
.
Функция распознает каждое слово независимо. Соответствие не должно охватывать целое слово.
Замените слова, которые начинаются с "s"
, заканчивают "e"
и имеют по крайней мере один символ между ними. Чтобы распознать целые слова, используйте "^"
, чтобы совпадать с запуском слова и "$"
, чтобы совпадать с концом слова.
documents = tokenizedDocument([ ... "an example of a short sentence" "a second short sentence"])
documents = 2x1 tokenizedDocument: 6 tokens: an example of a short sentence 4 tokens: a second short sentence
expression = "^s(\w+)e$"; replace = "thing"; newDocuments = regexprep(documents,expression,replace)
newDocuments = 2x1 tokenizedDocument: 6 tokens: an example of a short thing 4 tokens: a second short thing
Если вы не используете "^"
и "$"
, то можно совпадать с подстроками слов. Замените все гласные на "_".
expression = "[aeiou]"; replace = "\_"; newDocuments = regexprep(documents,expression,replace)
newDocuments = 2x1 tokenizedDocument: 6 tokens: _n _x_mpl_ _f _ sh_rt s_nt_nc_ 4 tokens: _ s_c_nd sh_rt s_nt_nc_
Замените изменения слова "walk"
путем получения букв, которые следуют за "walk"
.
documents = tokenizedDocument([ "I walk" "they walked" "we are walking"])
documents = 3x1 tokenizedDocument: 2 tokens: I walk 2 tokens: they walked 3 tokens: we are walking
expression = "walk(\w*)"; replace = "ascend$1"; newDocuments = regexprep(documents,expression,replace)
newDocuments = 3x1 tokenizedDocument: 2 tokens: I ascend 2 tokens: they ascended 3 tokens: we are ascending
documents
— Введите документыtokenizedDocument
Введите документы, заданные как массив tokenizedDocument
.
выражение
Регулярное выражениеРегулярное выражение, заданное как вектор символов, массив ячеек из символьных векторов или массив строк. Каждое выражение может содержать символы, метасимволы, операторы, лексемы и флаги, которые задают шаблоны, чтобы соответствовать в 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
замена
Текст заменыТекст замены, заданный как вектор символов, массив ячеек из символьных векторов или массив строк, можно следующим образом:
Если replace
является односимвольным вектором, и expression
является массивом ячеек из символьных векторов, то regexprep
использует тот же текст замены для каждого выражения.
Если replace
является массивом ячеек векторов символов N
, и expression
является односимвольным вектором, то regexprep
делает попытку соответствий N
и замен.
Если и replace
и expression
являются массивами ячеек из символьных векторов, то они должны содержать то же число элементов. пары regexprep
каждый элемент replace
с его соответствующим элементом в expression
.
Текст замены может включать регулярные символы, специальные символы (такие как вкладки или новые строки), или заменяющие операторы, как показано в следующих таблицах.
Заменяющий оператор | Описание |
---|---|
| Фрагмент входного текста, который является в настоящее время соответствием |
| Фрагмент входного текста, который предшествует текущему соответствию |
| Фрагмент входного текста, который следует за текущим соответствием (используют |
|
|
| Названная лексема |
| Выведите возвратился, когда MATLAB выполняет команду, |
Оператор | Описание |
---|---|
| Предупреждение (звуковой сигнал) |
| Клавиша Backspace |
| Перевод формата |
| Новая строка |
| Возврат каретки |
| Горизонтальная вкладка |
| Вертикальная вкладка |
| Любой символ с особым значением в регулярных выражениях, с которыми вы хотите совпадать буквально (например, используйте |
Типы данных: char
| cell
| string
newDocuments
— Выведите документыtokenizedDocument
Выведите документы, возвращенные как массив tokenizedDocument
.
Text Analytics Toolbox обеспечивает функции для общего текста, предварительно обрабатывающего шаги. Например, чтобы удалить пунктуацию и символы символа, используйте erasePunctuation
или удалить слова основы с помощью Носильщика stemmer, использовать normalizeWords
. Для получения дополнительной информации смотрите текстовую Подготовку данных.
decodeHTMLEntities
| erasePunctuation
| eraseTags
| eraseURLs
| normalizeWords
| removeLongWords
| removeShortWords
| removeWords
| replace
| tokenizedDocument
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.