Regexprep';s起点

Regexprep';s起点,regex,string,matlab,Regex,String,Matlab,我有一个字符串S和一个模式p(在Matlab中)。我想在S中找到P的所有外观,并使用regexprep缩短每个外观。但是我想通过O(n)来实现。如果我知道如何传递到regexprep,“S”中开始搜索的位置是什么,这将得到解决 这是我尴尬的做法。我在内存中保持这个位置p,并为每次迭代分配它。然后我以这种方式启动regexprep: s = strcat(s(1:p),regexprep(s((p+1):length(s)),'P','f(P)','once'); 有没有更简单的方法 regex

我有一个字符串
S
和一个模式
p
(在Matlab中)。我想在
S
中找到
P
的所有外观,并使用
regexprep
缩短每个外观。但是我想通过
O(n)
来实现。如果我知道如何传递到
regexprep
,“S”中开始搜索的位置是什么,这将得到解决

这是我尴尬的做法。我在内存中保持这个位置
p
,并为每次迭代分配它。然后我以这种方式启动
regexprep

s = strcat(s(1:p),regexprep(s((p+1):length(s)),'P','f(P)','once');

有没有更简单的方法

regexprep
不是已经这样做了吗

>> S = 'g3dd4e5t67y8';
>> P = '[a-z][0-9]';
>> R = '*';
>> result = regexprep(S,P,R)
result =
*d***7*

我处理P的每个条目。您的R必须是P的函数。