perl正则表达式匹配并在标量变量中存储特定字符

时间:2013-04-22 10:43:24

标签: regex perl

现在假设我在文件中有这一行:

my %address = (

或我定义了哈希的任何类似的行。

我想在$ hash_name中找到字符“(”中的行和存储“地址”。我该怎么办?

基本思想是捕获文件中定义的哈希的名称。

我想做的是,

foreach $line <MYFILE> {
  if($line =~ /($/ {

如何进一步处理?

2 个答案:

答案 0 :(得分:2)

不确定我是否了解您的问题,但是,如何:

my %hash;
while (my $line = <MYFILE>) {
    if ($line =~ /\%(\w+)\s*=\s*\($/) {
        $hash{$1} = 1;
    }
}

答案 1 :(得分:-2)

open (F1,"inputfile.txt") or die("unable to open inputfile.txt");
my $hash_name
    while (<F1>) {
        if (/%(\w+) *= *\(/) {
            $hash_name = $1;
            print $hash_name;
        }
    }