我有以下正则表达式:
>> str = 'aaabbbaaa';
>> regexp(str, '^a+')
ans = 1
如何在模式中为正则表达式使用变量?类似于以下内容:
>> str = 'aaabbbaaa';
>> searchchar = 'a'
>> regexp(str, '^searchchar')
您需要将变量的值插入字符串中。一种方法是连接字符:
str = 'aaabbbaaa';
searchchar = 'a'
expr = ['^',searchchar,'+'];
regexp(str, expr)
[另一种方法是使用sprintf
构建表达式字符串:
expr = sprintf('^%s+',searchchar);
我用字符串连接解决了这个问题:
>> str = 'aaabbbaaa'
>> searchchar = 'a'
>> regexp(str, cstrcat('^', searchchar, '+'))
ans = 1