use strict;
use warnings;
my $tmp = join "\n", <DATA>;
my @biblables =();
Listenelemente abgerufen wird und zum Speichern in @biblables in einer while-SchleifeIn Array listItem wie Werte zu speichern, mit komma Trennung und endet mit Punkt perl Verwendung
while($tmp=~m/\\bibitem\[([^\[\]]*)\]{([^\{\}]*)}/g)
{
push(@biblables, "\\cite{$2}, ");
}
print @biblables;
Während dieses Druck wir bekommen werden Ausgabe wie zum Beispiel:
\cite{BuI2001},\cite{BuI2002},\cite{BuI2003},\cite{BuI2004},\cite{BuI2005},\cite{BuI2006},
jedoch wir die Ausgabe wie diese
\cite{BuI2001},\cite{BuI2002},\cite{BuI2003},\cite{BuI2004},\cite{BuI2005},\cite{BuI2006}.
brauchen
Daher können wir Post regex einfügen Punkt am Ende des listitem in Array
while($tmp=~m/\\bibitem\[([^\[\]]*)\]{([^\{\}]*)}/g)
{
my $post = $';
if($post!~m/\\bibitem\[([^\[\]]*)\]{([^\{\}]*)}/)
{ push(@biblables, "\\cite{$2}."); }
else { push(@biblables, "\\cite{$2}, "); }
}
print @biblables;
Könnten Sie mir bitte raten verwenden, wenn es kurze Weg ist, diese Ausgabe
#
__DATA__
\bibitem[{BuI (2001)}]{BuI2001}
\bibitem[{BuII (2002)}]{BuI2002}
\bibitem[{BuIII (2003)}]{BuI2003}
\bibitem[{BuIV (2004)}]{BuI2004}
\bibitem[{BuV (2005)}]{BuI2005}
\bibitem[{BuVI (2006)}]{BuI2006}
Ich weiß nicht viel von Perl, aber warum nicht Sie die Array-Matches beitreten und einen Punkt am Ende hinzufügen? –
After-Schleife, vor dem Druck ... '$ Biblables [-1] = ~ s /,/./;' – toolic
@ Benutzer6188402: Basierend auf der Anforderung müssen wir Ende Interpunktion am Ende der Anweisung oder Satz einfügen. Die Anzahl der Elemente sollte durch Komma oder Semikolon getrennt werden. Allerdings brauchen wir die Endperiode am Ende der Zeile. – ssr1012