Matlab文档声明可以在regexprep中替换第N个模式。我没有看到如何实现它,谷歌没有返回任何有用的东西。
http://www.weizmann.ac.il/matlab/techdoc/ref/regexprep.html
基本上我拥有的字符串是:,:,1,我想用一个任意数字替换第二次出现的:。根据文档:
regexprep(':,:,4',':','AnyNumber','N')
我不明白应该如何使用N选项。我试过'N',2或者只是'2'。
请注意:位置可能在任何地方。
我意识到除了regexprep之外还有其他方法可以做到这一点,但我不喜欢让问题流连忘返。
感谢您的帮助!
答案 0 :(得分:0)
regexprep(':,:,4',':','AnyNumber',2)
以上作品。
答案 1 :(得分:0)
根据MATLAB文档,regexprep的常规语法为:
newStr = regexprep(str,expression,replace,option1,...optionM);
它在“ str”中查找,找到匹配的“ expression”,然后将匹配的字符串替换为“ replace”。有9个可用选项。其中八个是固定字符串,一个是整数。整数表明要替换的匹配字符串之一。 以下代码将所有参数设置为变量,找到匹配字符串的数量,并使用该信息仅替换最后一次出现的信息。
str = ':,:,4';
expression= ':';
replace = num2str(floor(rand()*10));
% generate a single digit random number converted to string
idx = regexp(str, expression); % use regexp to find the number of matches
regexprep(str, expression, replace, length(idx)); % only replace the last one