如何使用正则表达式,匹配并提取部分类容。

我想问一下,用正则表达式是否可以达到【匹配但不输出】的功能。
比如,有一个字符串:

'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})
regexp(str, 'NumPoint (\d+) pt', 'tokens'){1};