Regex 正则表达式:除去组以外的所有对象

Regex 正则表达式:除去组以外的所有对象,regex,perl,Regex,Perl,我需要删除正则表达式中除匹配组以外的所有组。例如: echo 'spam 123 ham 345 eggs' | perl -pe 's/( \d+ )/SOMETHING/g' 123 345 什么perl正则表达式将删除除匹配组之外的所有内容?匹配的组可能比数字更复杂-我可以定义要匹配的组,但在组之外,我可以包含任何随机字符只需连接所有匹配项即可。我不知道Perl,但类似的东西可能会起作用: $result = join('', $subject =~ m/\s*\d+\s*/g);

我需要删除正则表达式中除匹配组以外的所有组。例如:

echo 'spam 123 ham 345 eggs' | perl -pe 's/( \d+ )/SOMETHING/g'

123 345

什么perl正则表达式将删除除匹配组之外的所有内容?匹配的组可能比数字更复杂-我可以定义要匹配的组,但在组之外,我可以包含任何随机字符

只需连接所有匹配项即可。我不知道Perl,但类似的东西可能会起作用:

$result = join('', $subject =~ m/\s*\d+\s*/g);

问题是什么?那么,您是说基于由行首、行尾和空格字符定义的字符串段,您希望过滤掉除仅包含数字的段以外的所有段吗?在Perl中,必须提供一个显式分隔符作为
连接的第一个参数。空字符串就可以了:
$result=join'',$subject=~/…/g