正则表达式:捕获给定分隔符内的重复块(在MATLAB中)



我试图在字符串中捕获一组变量名,由字符串开头和结尾的特定字符分隔。类似这样的东西:

" {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"

相关内容

  • 没有找到相关文章

最新更新