我试图在字符串中捕获一组变量名,由字符串开头和结尾的特定字符分隔。类似这样的东西:
" {var1 var2 var3} ", or
" [var1 var2 var3] "
您可以很容易地将它们捕获为字符串数组。像这样的东西起作用:
out = regexp(str, '(?<varname>w*)', 'names')
Matlab返回一个结构数组,其中一个字段名为"varname"。
问题是,无论分隔符是什么,这都会起作用。当分隔符是"{"one_answers"}"而不是其他分隔符时,如何捕获变量名?类似于:
out = regexp(str, '{(?varname>w*)}', 'names')
不会起作用。
提前非常感谢。
使用regexp,您可以通过尝试匹配\{(\w*\w*(\}来匹配文本,这与您所拥有的类似,但MATLAB不支持量化捕获,因此您不能通过捕获来提取\w部分。
以下内容是否足够?
>> str = " {var1 var2 var3} "
>> str = extractBetween(str,"{","}");
>> str = split(str)
str =
3×1 string array
"var1"
"var2"
"var3"