在matlab中使用regexp

时间:2013-12-04 03:49:49

标签: regex matlab

我正在尝试使用以下代码来计算文件中整个单词“the”的数量。它为“the”的数量保持返回零。我该怎么做才能做到这一点?

totalthe=length(regexp(strcat(lines{:}),'\bthe\b'))

3 个答案:

答案 0 :(得分:1)

对不起,事实证明我可能在之前的回答中误导了你。结果是MATLAB的单词边界为\<\>(分别为开始和结束单词边界)而不是\b。我今天也学到了新东西。

请注意,这比使用\s(空格)更可取,否则您可能会错过该行开头和结尾的匹配项。

答案 1 :(得分:0)

总结所有评论:

totalthe=length(regexpi(strvcat(lines{:}),'\<the\>'))

strvcat代替strcat以阻止前导The不会停留在上一行末尾的单词。

答案 2 :(得分:0)

我们根据其他答案,评论和一些反复试验来实现:

假设这些是你的行:

lines = {'In the cell on the island'; 'there is the man.';'The end'}

然后这将计算'the'的出现,不区分大小写:

x = regexpi(lines,'\<the\>')
numel([x{:}])