2016-06-21 3 views
1

マッチした文字列をマッチまで印字する方法はありますか?この例ではPerlパターンマッチでは、マッチした文字列をマッチまで印刷します

use strict; 
use warnings; 

my $match_re = qr/\QCopyright (c) \E(\d .*) \Q by Bill Shakespeare.\E/xi; 

my $str = 'Copyright (c) 2008,2009-2011 by Wordsworth'; 

if ($str =~ $match_re) { 
    print "\ncomplete match\n"; 
} else { 
    print "\npartial match: \n"; 
} 

それはこのまで一致したため、私はpartial match: Copyright (c) 2008,2009-2011 byを印刷したいです。

+0

もし '$ str'が' Copyright(foo) 'ならば'著作権( '? – ThisSuitIsBlackNot

+0

@ThisSuitIsBlackNot、yes – rodee

+0

バージョンによって' $ {^ PREMATCH } ' – stevieb

答えて

0

あなたは次の行を使用して2つの部分を抽出することができます

$string ='\bibitem{bibtex_key} rest'; 

で始まる標準のBibTeX処理されたエントリ(BBL)を想定します。

my ($bibtex_key, $rest) = $string =~ m/\\bibitem\{(.*)\}(.*)/; 

今、あなたは簡単にそれをあなたのニーズに適応することができます: )

関連する問題