如何在Octave的正则表达式中使用变量?

问题描述 投票:0回答:2

我有以下正则表达式:

>> str = 'aaabbbaaa';
>> regexp(str, '^a+')
ans = 1

如何在模式中为正则表达式使用变量?类似于以下内容:

>> str = 'aaabbbaaa';
>> searchchar = 'a'
>> regexp(str, '^searchchar')
octave
2个回答
1
投票

您需要将变量的值插入字符串中。一种方法是连接字符:

str = 'aaabbbaaa';
searchchar = 'a'
expr = ['^',searchchar,'+'];
regexp(str, expr)

[另一种方法是使用sprintf构建表达式字符串:

expr = sprintf('^%s+',searchchar);

0
投票

我用字符串连接解决了这个问题:

>> str = 'aaabbbaaa'
>> searchchar = 'a'
>> regexp(str, cstrcat('^', searchchar, '+'))
ans = 1
© www.soinside.com 2019 - 2024. All rights reserved.