通过matlab读取txt文件中特定字符串后的数字

通过matlab读取txt文件中特定字符串后的数字,matlab,Matlab,我在一个大的a.txt文件中重新解释了我的pb 食物的数量是1 所需行程为5分钟 我需要阅读“食物量是”表达式后面的1和“理想旅行是”表达式后面的5,再次感谢您可以查看:使用regexpi,您只需在字符串中查找数字即可 语法如下所示: startIndex = regexpi(str,expression) 其中,表达式参数是正则表达式(即检索连续数字的“\d*”)在您的特定情况下,使用正则表达式执行此操作的方法是: 首先,您必须确定哪些字符串在搜索中有效 例如: firstpar = 'Fi

我在一个大的a.txt文件中重新解释了我的pb

食物的数量是1

所需行程为5分钟

我需要阅读“食物量是”表达式后面的1和“理想旅行是”表达式后面的5,再次感谢您可以查看:使用regexpi,您只需在字符串中查找数字即可

语法如下所示:

startIndex = regexpi(str,expression)

其中,
表达式
参数是正则表达式(即检索连续数字的“\d*”)

在您的特定情况下,使用正则表达式执行此操作的方法是:

首先,您必须确定哪些字符串在搜索中有效 例如:

firstpar = 'First parameter is [0-9]+';
表示您正在查找字符串“第一个参数是”
以数字序列结尾

然后可以按以下方式使用
regexp
regexpi

results = regexp(mystring, firstpar, 'match');
其中,
mystring
是您执行搜索的文本,
“匹配”
表示您希望部分文本作为输出,而不是索引

现在,
results
是一个单元格矩阵,每个单元格都包含一个字符串,该字符串出现在您的文本中并符合您的
firstpar
定义。为了仅从字符串的单元格矩阵中提取数字,您可以再次使用
regexp
,但现在可以使用
cellfun
,它将您的命令迭代应用于单元格矩阵的所有单元格:

numbers = cellfun(@(x) str2num(regexp(x, '[0-9]+', 'match', 'once')), results);
numbers
是您正在查找的数字数组

您可以对不同的字符串模式执行相同的操作-如果您想要更通用的字符串定义(而不是我们在这里使用的简单的
firstpar
),请阅读(alexcasalboni将其粘贴在注释中),向下滚动到输入参数并展开“表达式”


regexp
regexpi
之间的区别在于后者不区分大小写。

对不起,我重新解释了我的问题,我想在.txt文件中读取这两个数字