正規表現とコメントを含む可能性のある perl コード行を探しています。コメントまですべてをキャプチャする必要があります。だから私は # までのすべての文字が欲しいのですが、たとえば行が次の場合、 # をキャプチャすることに興味があります。
if ($line=/\#/) { #captures lines with '#'
キャプチャしたい:
if ($line=/\#/) {
これを試してください:
use PPI;
my $ppi = PPI::Document->new('source.pl');
my $source = '';
for my $token ( @{ $ppi->find("PPI::Token") } ) {
last if $token->isa("PPI::Token::Comment");
$source .= $token;
}
print $source;
これは、ヒアドキュメント以外のほとんどすべてを処理する必要があります。それらに対処する必要がある場合は、まず PPI::Document::serialize をコピーし、最初のコメントで停止するように変更します。
これを試して
^(?:[^#]|(?<=\\)#)+
ここでRegexrを参照してください
^
これは、文字列 ( ) の先頭から、# ( [^#]
)または
バックスラッシュ ( (?<=\\)#
)が前にある #以外のすべてに一致します。