Перевод текста в регулярное выражение
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. 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.