Perl - 从类型中分离变量名称

时间:2012-04-04 12:01:44

标签: regex perl perl5

我有这些字符串:

int name
const int level
const char          *  const                    format
(float) int promenna
(char *) int jina

如何从perl中分离perl中的变量名称(名称,级别,格式......)?我尝试了一些正常的表达/((\.*\s*\w+)+)(\s+)(\w+)$/,但我不是很擅长这个,而且我的问题也很严重。那么有人有简单的解决方案吗?在第三个例子中有很多空格,你必须指望它,可能有\ s *。谢谢

编辑:我很难解释我想要的东西。我说我想要单独的名字,我的意思是我需要从字符串中删除最后一个字(变量名)。我很抱歉误会。

1 个答案:

答案 0 :(得分:4)

只需使用

替换最后一个'单词'即可
s/\w+$//

例如:

#!perl

my @strings = (
    'int name',
    'const int level',
    'const char          *  const                    format',
    '(float) int promenna',
    '(char *) int jina',
    'char *a'
);

for my $string (@strings) {
    $string =~ s/\w+$//;
    $string =~ s/\s*$//;
    $string =~ s/\s+/ /g;
    print "$string\n";
}

结果

int
const int
const char * const
(float) int
(char *) int
char *