Переведите текст в регулярное выражение
newStr = regexptranslate(
переводит op
,str
)str
в регулярное выражение и возвращает результат в newStr
. Можно использовать newStr
как регулярное выражение в regexp
, regexpi
, и regexprep
функций. Входной параметр op
задает тип перевода, который regexptranslate
выполняет. Для примера, если вы задаете op
как 'escape'
, затем regexptranslate
переводит специальные символы в str
так что они являются буквальными символами в выходе. newStr
имеет тот совпадающий тип данных что и str
.
Переведите специальный символ в вектор символов с помощью regexptranslate
функция. Затем используйте результат как регулярное выражение в regexp
.
Создайте вектор символов, содержащий символы '\n'
.
chr = 'The sequence \n generates a new line.'
chr = 'The sequence \n generates a new line.'
Создайте регулярное выражение, которое находит '\n'
как последовательность двух последовательных символов '\'
и 'n'
. Начиная с regexp
интерпретирует функции '\n'
в качестве символа новой строки используйте regexptranslate
создать регулярное выражение для выхода из '\n'
.
pattern = regexptranslate('escape','\n')
pattern = '\\n'
Найдите начальный индекс '\n'
в chr
. Чтобы предотвратить regexp
от интерпретации '\n'
в качестве новой строки используйте pattern
как регулярное выражение.
idx = regexp(chr,pattern)
idx = 14
Функции regexp
не сбегая '\n'
. Начиная с regexp
интерпретирует '\n'
в качестве новой строки он не находит буквальные символы в chr
. The regexp
функция возвращает пустой массив, если он не находит совпадение.
idx = regexp(chr,'\n')
idx = []
Создайте строку. Начиная с R2017a, вы можете создавать строки, используя двойные кавычки.
str = "Put your money in."
str = "Put your money in."
Задайте текст, '$0.02'
, в качестве текста для замены слова 'money'
. Чтобы избежать '$'
и '.'
символы, использование regexptranslate
.
r = regexptranslate('escape','$0.02')
r = '\$0\.02'
Замените 'money'
использование regexprep
функция.
newStr = regexprep(str,'money',r)
newStr = "Put your $0.02 in."
Создайте строковые массивы, содержащий имена файлов. Затем найдите только имена файлов, которые заканчиваются на '.mat'
.
str = ["test1.mat","myfile.mat","my-matlab-script.m", ... "jan30.mat","table3.xls"]
str = 1x5 string
Columns 1 through 4
"test1.mat" "myfile.mat" "my-matlab-script.m" "jan30.mat"
Column 5
"table3.xls"
Чтобы соответствовать строкам с регулярным выражением, задайте '*.mat'
как регулярное выражение. Затем переведите символ подстановки, '*'
, с использованием regexptranslate
функция.
pattern = regexptranslate('wildcard','*.mat')
pattern = '.*\.mat'
Поиск соответствующих элементов в str
использование регулярного выражения, заданного как pattern
.
matches = regexp(str,pattern)
matches=1×5 cell array
{[1]} {[1]} {0x0 double} {[1]} {0x0 double}
Создайте логический массив, TF
, который содержит 1
где соответствующие элементы str
совпадающие pattern
. Затем индексируйте в str
использование TF
отображение имен файлов, заканчивающихся на '.mat'
.
tf = ~cellfun('isempty',matches);
newStr = str(tf)
newStr = 1x3 string
"test1.mat" "myfile.mat" "jan30.mat"
Создайте вектор символов, который содержит слова, разделенные пробелами, такие как пространства и символы новой строки.
chr = 'Whose woods these are I think I know.'; chr = [chr newline 'His house is in the village though']
chr = 'Whose woods these are I think I know. His house is in the village though'
Задайте '\s'
как регулярное выражение, которое совпадает с пробелами в символах. Затем замените эти символы в chr
.
expression = '\s'; newChr = regexptranslate('flexible',chr,expression)
newChr = 'Whose\swoods\sthese\sare\sI\sthink\sI\sknow.\sHis\shouse\sis\sin\sthe\svillage\sthough'
op
- Тип перевода'escape'
| 'wildcard'
| 'flexible'
Тип перевода, заданный как вектор символов или строковый скаляр. Можно переводить специальные символы или подстановочные символы или заменять текст соответствующим регулярным выражением, используя опции в таблице.
Тип перевода | Описание |
---|---|
| Переведите все специальные символы в |
| Переведите все подстановочные символы и |
| Замените текст в Этот синтаксис эквивалентен |
str
- Входной текстВходной текст, заданный как вектор символов, массив ячеек из векторов символов или строковые массивы.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.