-1

こんにちは私はPerlにまったく慣れておらず、今は単純なコード行を解析するための助けを求めています。

私が解析する必要があるのは

#include "filename"

ファイル名を取得するには正規表現が必要です。

Pythonにこれを行うsplitメソッドがあることは知っていますが、Perlに同様の関数があるかどうかはわかりません

ありがとう

4

3 に答える 3

5
my ($fn) = $include =~ /"([^"]*)"/;

また

my ($fn) = $include =~ /^\s*#\s*include\s*"([^"]*)"/;
于 2013-03-13T06:26:06.043 に答える
2

あなたはPerlでこれを行うことができます:split

my $fn = (split('"', $include_line))[1];

...しかし、それはかなり鈍い方法です。私は選ぶだろう

my ($fn) = $line =~ /^#include +"([^"]+)"/;

代わりに、これはより明確であり#include、入力ファイルに二重引用符で囲まれたテキストを含む他の行が含まれている場合に誤検知を返すのではなく、非行に何も返さないという利点もあります。

于 2013-03-13T09:12:12.907 に答える
1

本当に必要なのがc/c ++ファイルの束からヘッダーを抽出することである場合は、ackを使用して簡単に抽出できます。

ack --cc '#include "([^"]+)' -h --output=\$1  | sort | uniq
于 2013-03-13T07:25:07.290 に答える