我有这些字符串:
int name
const int level
const char * const format
(float) int promenna
(char *) int jina
如何从perl中分离perl中的变量名称(名称,级别,格式......)?我尝试了一些正常的表达/((\.*\s*\w+)+)(\s+)(\w+)$/
,但我不是很擅长这个,而且我的问题也很严重。那么有人有简单的解决方案吗?在第三个例子中有很多空格,你必须指望它,可能有\ s *。谢谢
编辑:我很难解释我想要的东西。我说我想要单独的名字,我的意思是我需要从字符串中删除最后一个字(变量名)。我很抱歉误会。
答案 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 *