Как использовать переменную в регулярном выражении в Octave? - PullRequest
1 голос
/ 17 января 2020

У меня есть следующее регулярное выражение:

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

Как использовать переменную в шаблоне для регулярного выражения? Примерно так:

>> str = 'aaabbbaaa';
>> searchchar = 'a'
>> regexp(str, '^searchchar')

Ответы [ 2 ]

2 голосов
/ 17 января 2020

Вам необходимо вставить значение переменной в строку. Один из способов - объединение символов:

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

Другой способ - использовать sprintf для построения строки выражения:

expr = sprintf('^%s+',searchchar);
0 голосов
/ 17 января 2020

Я решил это с помощью конкатенации строк:

>> str = 'aaabbbaaa'
>> searchchar = 'a'
>> regexp(str, cstrcat('^', searchchar, '+'))
ans = 1
...