我想问一下,用正则表达式是否可以达到【匹配但不输出】的功能。
比如,有一个字符串:
'NumPoint 12 pt'
我用matlab匹配的语句是:
regexp(str, 'NumPoint \d+ pt', match);
可以匹配到此字符串
是否可以有简单的办法匹配到此格式后,然后只把'12'输出出来。
我想问一下,用正则表达式是否可以达到【匹配但不输出】的功能。
比如,有一个字符串:
'NumPoint 12 pt'
我用matlab匹配的语句是:
regexp(str, 'NumPoint \d+ pt', match);
可以匹配到此字符串
是否可以有简单的办法匹配到此格式后,然后只把'12'输出出来。
望采纳
是的,您可以使用正则表达式的捕获组功能来实现这一目的。
捕获组可以让您只匹配某些特定的子字符串,而不是整个字符串。您可以在正则表达式中使用小括号来指定捕获组,然后在调用regexp函数时,指定'tokens'选项来提取捕获组的内容。
下面是代码详情
% 定义要匹配的字符串
str = 'NumPoint 12 pt';
% 使用捕获组来匹配数字
pattern = 'NumPoint (\d+) pt';
% 调用regexp函数来匹配字符串
[match, tokens] = regexp(str, pattern, 'match', 'tokens');
% 输出提取的数字
disp(tokens{1})