<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">##%
##% ---------------------------------------------------------------
##% gb7714texttobib--- A transformation tool for GB/T 7714-2015 style 
##% bibliography text to bib source file
##% 
##% Maintained by huzhenzhen
##% Homepage: &lt;https://github.com/hushidong/biblatex-gb7714-2015&gt;
##% history:
##% 	2017/02/26 v1.0g
##% 	2021/09/04 add compatablity for text with no space after punctuations.
##%     2023/09/13 change CJK punctuations to EN punct and add final dot.
##% E-mail: 
##% 	hzzmail@163.com
##% Released under the LaTeX Project Public License v1.3c or later
##% usage:
##% 	perl gb7714texttobib.pl in=textfilename out=bibfilename
##% options(need to do):
##% 	style=ay or default
##% 	key=ay or default
##%
##% ---------------------------------------------------------------
#%Target:: å°†pdfæ–‡æ¡£ä¸­æ‹·å‡ºçš„å‚è€ƒæ–‡çŒ®æ–‡æœ¬è½¬æ¢æˆbibæ–‡ä»¶ï¼Œæ–‡æœ¬æ–‡ä»¶ä¸­çš„ä¸€æ¡å‚è€ƒæ–‡çŒ®ä¸ºä¸€è¡Œ
#%Method:: åˆ©ç”¨perlè¿›è¡Œæ–‡æœ¬å¤„ç†ï¼Œå¤„ç†å’Œåˆ¤æ–­çš„ä¸¤ä¸ªé‡è¦æ–¹é¢æ˜¯:
#          åˆ†æžåˆ†å‰²åŽçš„æ–‡æœ¬çš„ä½ç½®å’Œå†…å®¹ï¼Œä½¿ç”¨çš„æ˜¯æ­£åˆ™è¡¨è¾¾å¼åŒ¹é…ï¼Œä¸»è¦ä¸¤ç§æ–¹å¼
#		   1.æ&nbsp;¹æ®æ&nbsp;‡ç‚¹å’Œæœ¬æ–‡ç‰¹å¾ä¸€éƒ¨åˆ†ä¸€éƒ¨åˆ†çš„è§£æžï¼Œæ¯”å¦‚bookæ¡ç›®å¤„ç†
#		   2.ç›´æŽ¥åˆ—å‡ºæ‰€æœ‰å¯èƒ½çš„æ­£åˆ™è¡¨è¾¾å¼ä¸€ä¸ªä¸ªåŒ¹é…ï¼Œæ¯”å¦‚articleæ¡ç›®å¤„ç†
#%Date  :: 2017-02-22
#%Note  :: 1.ç½‘å€ä¹‹ç±»å¦‚æžœè§£æžå‡ºé”™ï¼Œåº”ç¡®è®¤å…¶å‰å¯¼è¯http://ä¹‹å‰æ²¡æœ‰ç©ºæ&nbsp;¼
#          2.æœ‰äº›ä»¥.è¿žæŽ¥æœ‰ä»Žå±žå…³ç³»çš„æœºæž„ä½œè€…ï¼Œå¯ä»¥æŠŠ.åŽçš„ç©ºæ&nbsp;¼åŽ»æŽ‰ä¾¿äºŽæ­£ç¡®è§£æž
#          3.æœ‰äº›å°½ç®¡è§£æžåˆ°çš„åŸŸä¸æ˜¯çœŸå®žçš„åŸŸï¼Œä½†ä¸å½±å“è‘—å½•æ&nbsp;¼å¼(æ˜¾ç¤ºæ•ˆæžœ)ï¼Œç›¸åº”æ¡ç›®çš„åŸŸ
#            å¯ä»¥åœ¨bibæ–‡ä»¶ä¸­å®Œå–„ï¼Œå°½ç®¡ä»Žå®žç”¨è§’åº¦å¹¶ä¸éœ€è¦è¿™ä¹ˆåšã€‚
#
##% ---------------------------------------------------------------
##% note: 
##% 	  1. å¯¹äºŽè‹±æ–‡çš„å§“åè‹¥éžæ&nbsp;‡å‡†çš„å›½æ&nbsp;‡å†™æ³•ï¼Œé€šå¸¸å½“åšæœºæž„ä½œè€…å¤„ç†ï¼Œæ‰€ä»¥ç”Ÿæˆçš„bibæ–‡ä»¶éœ€è¦è‡ªå·±æ‰‹åŠ¨å¤„ç†
##% obsolete intro:
##% 	  1.æºæ–‡ä»¶æ–‡æ¡£å¦‚æžœä¸ªåˆ«åœ°æ–¹ä¸ç¬¦åˆè§„èŒƒï¼Œå¯ä»¥ä¿®æ”¹ä¸€ä¸‹
##% 	   (a):inbook/standardç±»ä¸­ï¼Œå½“å‡ºçŽ°//åŽé¢ç¬¬äºŒé¡¹æ˜¯booktitleä¸”å…¶ä¸­å­˜åœ¨:æ—¶ï¼Œå…ˆæŠŠçˆ¶æ&nbsp;‡é¢˜çš„å†’å·æ”¹æˆcolonï¼Œæ¯”å¦‚
##%			[M]//æŽæ‰¿æ£®. å®‹å²: ç¬¬ 1 å†Œ. åŒ—äº¬: ä¸­åŽä¹¦å±€. åº”æŠŠå®‹å²åŽçš„å†’å·æ”¹æŽ‰
##% 	    [S]//å…¨å›½æ–‡çŒ®å·¥ä½œæ&nbsp;‡å‡†åŒ–æŠ€æœ¯å§”å‘˜ä¼š. æ–‡çŒ®å·¥ä½œå›½å®¶æ&nbsp;‡å‡†æ±‡ç¼–: 3. åŒ—äº¬: ä¸­å›½æ&nbsp;‡å‡†å‡ºç‰ˆç¤¾, 1988: 59â€“92.
##% ---------------------------------------------------------------


foreach $file(@ARGV){
	print 'file:',$file,"\n";
	if($file=~m/in=/){
	($infile)=($file=~m/in=(.*)/)
	}
	if($file=~m/out=/){
	($outfile)=($file=~m/out=(.*)/)
	}
}

open (FHR,"&lt;$infile");
open (FHW,"&gt;$outfile");
print FHW '% Encoding: UTF-8',"\n";

@references=&lt;FHR&gt;;#å°†æ‰€æœ‰çš„æ–‡çŒ®å­˜ä¸º@referencesæ•°ç»„ï¼Œå„æ–‡çŒ®ä»¥&lt;è¡Œ&gt;ä¸ºå•ä½è¿›è¡ŒåŒºåˆ†


#20230913,hzz,å°†æ¡ç›®ä¸­çš„ä¸­æ–‡å…¨è§’æ&nbsp;‡ç‚¹è½¬æ¢ä¸ºè‹±æ–‡çš„
foreach $stra (@references) {
	print "orig: $stra\n";
	$stra=~s/ï¼Œ/\,/g;
	$stra=~s/ï¼š/\:/g;
	$stra=~s/ï¼›/\,/g;
	print "modf: $stra\n";
}


#20230913,hzz,è‹¥æ¡ç›®æœ€åŽæ²¡æœ‰ç‚¹å…ˆåŠ&nbsp;ä¸Šç‚¹
foreach $stra (@references) {
	print "orig: $stra\n";
	if ($stra=~m/\.$/ || $stra=~m/\.\s*$/)
	{
		print "str ened with dot\n";
	}
	else
	{
		#$stra=$stra+'.'; #ä¸èƒ½è¿™ä¹ˆç›´æŽ¥åŠ&nbsp;
		$stra=~s/(.*)/$1\./;
		print "add dot for str end without dot\n";
		print "modf: $stra\n";
	}
}


#æœ‰äº›æ–‡æœ¬æ&nbsp;‡ç‚¹åŽé¢æ²¡æœ‰ç©ºæ&nbsp;¼ï¼Œæ‰€ä»¥å…ˆå¯¹è¿™ä¸ªé—®é¢˜è¿›è¡Œå¤„ç†
#åœ¨æ‰€æœ‰çš„å…³é”®æ&nbsp;‡ç‚¹åŽé¢åŠ&nbsp;ä¸Šç©ºæ&nbsp;¼
#20210904,HZZ
foreach $stra (@references) {
	print "orig: $stra\n";
	$stra=~s/\.(\S)/\. $1/g;
	$stra=~s/\,(\S)/\, $1/g;
	$stra=~s/\:(\S)/\: $1/g;
	print "modf: $stra\n";
	}
print "@references\n";






$ns=1;
$ne=@references;
$nline=0;
foreach $reference(@references){

	$nline=$nline+1;
	if($nline&lt;$ns){next;} #å…ˆè·³è¿‡å‡&nbsp;è¡Œè¿›è¡Œï¼Œé…åˆåŽé¢çš„lastè¿›è¡Œå½“è¡Œæµ‹è¯•

	while($reference=~m/â€“/){
		$reference=~s/â€“/-/;#ç›´æŽ¥åˆ©ç”¨æ­£åˆ™è¡¨è¾¾å¼æ›´æ­£é¡µç&nbsp;/æ—¥æœŸ/ç½‘å€ä¸­çš„è¿žå­—ç¬¦
	}
	print "ref: $reference ";#æ‰“å°å„æ–‡çŒ®çš„å†…å®¹

	$lenstr=length($reference);
	print "lenstr=$lenstr\n";
	$lenstr=rindex $reference."\$","\$";
	print "lenstr=$lenstr\n";

	if ($lenstr&gt;1){
		undef	$entrytype;
		undef	$author;
		undef	$title;
		undef	$journal;
		undef	$translator;
		undef	$bookauthor;
		undef	$booktitle;
		undef	$version;
		undef	$address;
		undef	$publisher;
		undef	$institution;
		undef	$year;
		undef	$type;
		undef	$date;
		undef	$volume;
		undef	$number;
		undef	$pages;
		undef	$eventdate;
		undef	$urldate;
		undef	$url;
		undef	$doi;
		undef	$note;
		undef	$eventyvn; 
		undef	$endeventyvn;
		undef	$eventdate; 
		undef	$eventvol; 
		undef	$eventnum;
		undef	$endeventdate; 
		undef	$endeventvol; 
		undef	$endeventnum;
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:æœŸåˆŠå’ŒæœŸåˆŠä¸­æžå‡ºçš„æ–‡çŒ®/periodicalã€article
		#---------------------------------------------------------------
		if(1){
		if($reference=~m/\[J\]/){
			#é¿å…åœ¨æ&nbsp;‡é¢˜ä¸­å­˜åœ¨åœ¨å†’å·çš„é—®é¢˜ï¼Œæ‰€ä»¥ä»Ž[J]å¼€å§‹åŒ¹é…ï¼Œé€šå¸¸ä¹Ÿä¸éœ€è¦ä»Ž[J/OL]å¼€å§‹å›&nbsp;ä¸ºperiodicalé€šå¸¸ä¸ä¼šå‡ºçŽ°online
			#2021.09.04,hzz,ä¿®æ”¹
			if($reference=~m/:\s/ and $reference=~m/\[J\].*:\s\D/){#æ&nbsp;¹æ®å­˜åœ¨å‡ºç‰ˆç¤¾å‰çš„å†’å·åŠ&nbsp;ç©ºæ&nbsp;¼åŒºåˆ†
				print 'this entry is periodical',"\n";
				$entrytype='periodical';
			}else{
				print 'this entry is article',"\n";
				$entrytype='article';
			}
		}
		
		if($entrytype eq 'periodical'){#å­—ç¬¦ä¸²æ¯”è¾ƒç”¨eqè€Œæ•°å­—æ¯”è¾ƒç”¨==ï¼Œå¦‚æžœç”¨==é‚£ä¹ˆä¸¤è¾¹éƒ½æ˜¯1ï¼Œåˆ™æ˜¯çœŸ
			$regexformach='\[J\]\.';
			&amp;bfidentifier;
			
			($preadderess, $pospublisher)=($reference=~m/\[J\]\.(.*):\s(.*)/);
			print 'preadderess =',$preadderess,"\n";
			print 'pospublisher=',$pospublisher,"\n";
			($eventyear, $address)=($preadderess=~m/(.*)\.\s(.*)/);
			print 'eventyear   =',$eventyear,"\n";
			print 'address     =',$address,"\n";
			($eventyvn, $endeventyvn)=($eventyear=~m/(.*)\-(.*)/);#yvnè¡¨ç¤ºyearï¼Œvolumeï¼Œnumber
			print 'eventyvn    =',$eventyvn,"\n";
			print 'endeventyvn =',$endeventyvn,"\n"; 
			if($eventyvn=~m/.*,.*/){#å­˜åœ¨é€—å·è¡¨æ˜Žæœ‰å·ä¿¡æ¯
				($eventdate, $eventvol, $eventnum)=($eventyvn=~m/\s*(.*),\s(.*)\((.*)\)/);#yvnè¡¨ç¤ºyearï¼Œvolumeï¼Œnumber
				print 'eventdate    =',$eventdate,"\n";
				print 'eventvol     =',$eventvol,"\n"; 
				print 'eventnum     =',$eventnum,"\n"; 
				if($endeventyvn){
					($endeventdate, $endeventvol, $endeventnum)=($endeventyvn=~m/\s*(.*),\s(.*)\((.*)\)/);#yvnè¡¨ç¤ºyearï¼Œvolumeï¼Œnumber
					print 'endeventdate =',$endeventdate,"\n";
					print 'endeventvol  =',$endeventvol,"\n"; 
					print 'endeventnum  =',$endeventnum,"\n"; 
				}
			}else{
				($eventdate, $eventnum)=($eventyvn=~m/\s*(.*)\((.*)\)/);#yvnè¡¨ç¤ºyearï¼Œvolumeï¼Œnumber
				print 'eventdate    =',$eventdate,"\n";
				print 'eventvol     =',$eventvol,"\n"; 
				print 'eventnum     =',$eventnum,"\n"; 
				if($endeventyvn){
					($endeventdate, $endeventnum)=($endeventyvn=~m/\s*(.*)\((.*)\)/);#yvnè¡¨ç¤ºyearï¼Œvolumeï¼Œnumber
					print 'endeventdate =',$endeventdate,"\n";
					print 'endeventvol  =',$endeventvol,"\n"; 
					print 'endeventnum  =',$endeventnum,"\n"; 
				}
			}
			if($endeventdate){
				$date=$eventdate.'-'.$endeventdate;
			}else{
				$date=$eventdate
			}
			if($endeventvol){
				$volume=$eventvol.'-'.$endeventvol;
			}else{
				$volume=$eventvol
			}
			if($endeventnum){
				$number=$eventnum.'-'.$endeventnum;
			}else{
				$number=$eventnum
			}
			print 'date      =',$date,"\n";
			print 'volume    =',$volume,"\n"; 
			print 'number    =',$number,"\n"; 
			($publisher)=($pospublisher=~m/(.*),/);
			print 'publisher =',$publisher,"\n";
		}
		
		if($entrytype eq 'article'){
			$regexformach='\[J\]\.';
			&amp;bfidentifier;
		
			$flagmatched=0;
			$regexbfjournal='\]\.\s(.*),\s(.*),\s(.*)\((.*)\):\s(.*)\.';#åŒ…æ‹¬å…¨éƒ¨ä¿¡æ¯
			if($reference=~m/$regexbfjournal/){
				($journal,$date,$volume,$number,$pages)=($reference=~m/$regexbfjournal/);
				$flagmatched=1;
				print 'åŒ…æ‹¬å…¨éƒ¨ä¿¡æ¯',"\n";
			}
			$regexbfjournal='\]\.\s(.*),\s(.*),\s(.*)\((.*)\)\.';#æ²¡æœ‰é¡µç&nbsp;
			if($reference=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$volume,$number)=($reference=~m/$regexbfjournal/);
				$flagmatched=1;
				print 'æ²¡æœ‰é¡µç&nbsp;',"\n";
			}
			$regexbfjournal='\]\.\s(.*),\s(.*),\s(.*):\s(.*)\.';#æ²¡æœ‰æœŸ
			if($reference=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$volume,$pages)=($reference=~m/$regexbfjournal/);
				$flagmatched=1;
				print 'æ²¡æœ‰æœŸ',"\n";
			}
			$regexbfjournal='\]\.\s(.*),\s(.*)\((.*)\):\s(.*)\.';#æ²¡æœ‰å·/å¹´
			if($reference=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$number,$pages)=($reference=~m/$regexbfjournal/);
				$flagmatched=1;
				if($date!~m/\d{4}/){
				$volume=$date;
				$date='';
				}
				print 'æ²¡æœ‰å·/å¹´',"\n";
			}
			$regexbfjournal='\]\.\s(.*),\s(.*),\s(.*)\.';#æ²¡æœ‰é¡µç&nbsp;,æœŸ
			if($reference=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$volume)=($reference=~m/$regexbfjournal/);
				$flagmatched=1;
				print 'æ²¡æœ‰é¡µç&nbsp;,æœŸ',"\n";
			}
			$regexbfjournal='\]\.\s(.*),\s(.*)\((.*)\)\.';#æ²¡æœ‰é¡µç&nbsp;,å·/å¹´
			if($reference=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$number)=($reference=~m/$regexbfjournal/);
				$flagmatched=1;
				if($date!~m/\d{4}/){
				$volume=$date;
				$date='';
				}
				print 'æ²¡æœ‰é¡µç&nbsp;,å·/å¹´',"\n";
			}
			$regexbfjournal='\]\.\s(.*),\s(.*):\s(.*)\.';#æ²¡æœ‰å·/å¹´,æœŸ
			if($reference=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$pages)=($reference=~m/$regexbfjournal/);
				$flagmatched=1;
				if($date!~m/\d{4}/){
				$volume=$date;
				$date='';
				}
				print 'æ²¡æœ‰å·/å¹´,æœŸ',"\n";
			}
			
			if($flagmatched==0){
				print 'the text after title was not matched, please add a regex for the current entry in the perl source code!',"\n";
				print 'å½“å‰æ¡ç›®æ&nbsp;‡é¢˜ä¹‹åŽçš„å†…å®¹æ²¡æœ‰åŒ¹é…çš„æ­£åˆ™è¡¨è¾¾å¼ï¼Œè¯·åœ¨perlä»£ç&nbsp;ä¸­å¢žåŠ&nbsp;é€‚åˆè¯¥æ¡ç›®æ­£åˆ™è¡¨è¾¾å¼!',"\n";
			}
			
			print 'journal =',$journal,"\n";
			print 'date    =',$date,"\n";
			print 'volume  =',$volume,"\n";
			print 'number  =',$number,"\n";
			print 'pages   =',$pages,"\n";
		
		}
			
		#åˆ¤æ–­æœŸåˆŠä¸­æžå‡ºçš„æ–‡çŒ®,å¸¦url
		if($reference=~m/\[J\/OL\]/){
			print 'this entry is article with url',"\n";
			$entrytype='article';
			
			$regexformach='\[J\/OL\]\.';
			&amp;bfidentifier;
			
			($postitle)=($reference=~m/\[J\/OL\]\.\s(.*)/);
			if($postitle=~m/\[.*\]/){#å­˜åœ¨urldate
				($preurldate,$urldate,$posurl)=($postitle=~m/(.*)\[(.*)\]\.\s(.*)/);
			}else{#ä¸å­˜åœ¨urldate
				($preurldate,$posurl)=($postitle=~m/(.*)(http:.*)/);
			}
			unless($preurldate=~m/\.$/){$preurldate=$preurldate.'.';}#åŠ&nbsp;ä¸ªç‚¹ç»Ÿä¸€ä¸Šé¢ä¸¤ç§æ–¹å¼
			
			#å¤„ç†urlå’Œdoi
			$regexposurl='(.*)doi:\s(.*)';#å¤„ç†urlå’Œdoi
			if($posurl=~m/$regexposurl/i){
				($url,$doi)=($posurl=~m/$regexposurl/i);
			}else{
				$url=$posurl;
			}
			
			#å¤„ç†urldateå‰çš„å†…å®¹ï¼ŒåŸºæœ¬articleä¸å¸¦urlçš„æƒ…å†µç›¸åŒ
			$flagmatched=0;
			$regexbfjournal='(.*),\s(.*),\s(.*)\((.*)\):\s(.*)\.';#åŒ…æ‹¬å…¨éƒ¨ä¿¡æ¯
			if($preurldate=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$volume,$number,$pages)=($preurldate=~m/$regexbfjournal/);
				$flagmatched=1;
			}
			$regexbfjournal='(.*),\s(.*),\s(.*)\((.*)\)\.';#æ²¡æœ‰é¡µç&nbsp;
			if($preurldate=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$volume,$number)=($preurldate=~m/$regexbfjournal/);
				$flagmatched=1;
			}
			$regexbfjournal='(.*),\s(.*),\s(.*):\s(.*)\.';#æ²¡æœ‰æœŸ
			if($preurldate=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$volume,$pages)=($preurldate=~m/$regexbfjournal/);
				$flagmatched=1;
			}
			$regexbfjournal='(.*),\s(.*)\((.*)\):\s(.*)\.';#æ²¡æœ‰å·/å¹´
			if($preurldate=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$number,$pages)=($preurldate=~m/$regexbfjournal/);
				$flagmatched=1;
				if($date!~m/\d{4}/){
				$volume=$date;
				$date='';
				}
			}
			$regexbfjournal='(.*),\s(.*),\s(.*)\.';#æ²¡æœ‰é¡µç&nbsp;,æœŸ
			if($preurldate=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$volume)=($preurldate=~m/$regexbfjournal/);
				$flagmatched=1;
			}
			$regexbfjournal='(.*),\s(.*)\((.*)\)\.';#æ²¡æœ‰é¡µç&nbsp;,å·/å¹´
			if($preurldate=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$number)=($preurldate=~m/$regexbfjournal/);
				$flagmatched=1;
				if($date!~m/\d{4}/){
				$volume=$date;
				$date='';
				}
			}
			$regexbfjournal='(.*),\s(.*):\s(.*)\.';#æ²¡æœ‰å·/å¹´,æœŸ
			if($preurldate=~m/$regexbfjournal/ and $flagmatched==0){
				($journal,$date,$pages)=($preurldate=~m/$regexbfjournal/);
				$flagmatched=1;
				if($date!~m/\d{4}/){
				$volume=$date;
				$date='';
				}
			}
			
			if($flagmatched==0){
				print 'the text after title was not matched, please add a regex for the current entry in the perl source code!',"\n";
				print 'å½“å‰æ¡ç›®æ&nbsp;‡é¢˜ä¹‹åŽçš„å†…å®¹æ²¡æœ‰åŒ¹é…çš„æ­£åˆ™è¡¨è¾¾å¼ï¼Œè¯·åœ¨perlä»£ç&nbsp;ä¸­å¢žåŠ&nbsp;é€‚åˆè¯¥æ¡ç›®æ­£åˆ™è¡¨è¾¾å¼!',"\n";
			}
			
			print 'journal =',$journal,"\n";
			print 'date    =',$date,"\n";
			print 'volume  =',$volume,"\n";
			print 'number  =',$number,"\n";
			print 'pages   =',$pages,"\n";
			print 'urldate =',$urldate,"\n";
			print 'url     =',$url,"\n";
			print 'doi     =',$doi,"\n";


		}
		}
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:åˆ¤æ–­æŠ¥çº¸ä¸­æžå‡ºçš„æ–‡çŒ®/newspaper
		#---------------------------------------------------------------
		if(1){
		if($reference=~m/\[N\]/){
			print 'this entry is newspaper',"\n";
			$entrytype='newspaper';
			$note='news';
			$regexnewsflag='\[N\]';
			$onlineflag=0;
		}
		if($reference=~m/\[N\/OL\]/){
			print 'this entry is newspaper with url',"\n";
			$entrytype='newspaper';
			$note='news';
			$regexnewsflag='\[N\/OL\]';
			$onlineflag=1;
		}
		if($entrytype eq 'newspaper'){
			if($onlineflag==1){
				$regexformach='\[N\/OL\]';
				&amp;bfidentifier;
				
				print 'has url',"\n";
				$flagmatched=0;
				$regexnewspostitle='\.\s(.*),\s(.*)\((.*)\)\s*\[(.*)\]\.\s(.*)';
				if($reference=~m/$regexnewsflag$regexnewspostitle/ and $flagmatched==0){
				$flagmatched=1;
				($journal,$date,$number,$urldate,$posurl)=($reference=~m/$regexnewsflag$regexnewspostitle/);}
				$regexnewspostitle='\.\s(.*),\s(.*)\s*\[(.*)\]\.\s(.*)';
				if($reference=~m/$regexnewsflag$regexnewspostitle/ and $flagmatched==0){
				$flagmatched=1;
				($journal,$date,$urldate,$posurl)=($reference=~m/$regexnewsflag$regexnewspostitle/);}
				if($flagmatched==0){
				print 'the text after title was not matched, please add a regex for the current entry in the perl source code!',"\n";
				print 'å½“å‰æ¡ç›®æ&nbsp;‡é¢˜ä¹‹åŽçš„å†…å®¹æ²¡æœ‰åŒ¹é…çš„æ­£åˆ™è¡¨è¾¾å¼ï¼Œè¯·åœ¨perlä»£ç&nbsp;ä¸­å¢žåŠ&nbsp;é€‚åˆè¯¥æ¡ç›®æ­£åˆ™è¡¨è¾¾å¼!',"\n";
				}
			}else{
				$regexformach='\[N\]';
				&amp;bfidentifier;
				
				print 'no url',"\n";
				$regexnewspostitle='\.\s(.*),\s(.*)\((.*)\)';
				($journal,$date,$number)=($reference=~m/$regexnewsflag$regexnewspostitle/);
			}
			#å¤„ç†urlå’Œdoi
			$regexposurl='(.*)doi:\s(.*)';#å¤„ç†urlå’Œdoi
			if($posurl=~m/$regexposurl/i){
				($url,$doi)=($posurl=~m/$regexposurl/i);
			}else{
				$url=$posurl;
			}
			
			# print 'journal =',$journal,"\n";
			# print 'date    =',$date,"\n";
			# print 'volume  =',$volume,"\n";
			# print 'number  =',$number,"\n";
			# print 'pages   =',$pages,"\n";
			# print 'urldate =',$urldate,"\n";
			# print 'url     =',$url,"\n";
			# print 'doi     =',$doi,"\n";
		}
		}
		
			
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:è®ºæ–‡é›†ä¸­æžå‡ºçš„æ–‡çŒ®/inproceedings
		#---------------------------------------------------------------
		if(1){#\/\/
			if ($reference=~m/\[C\/OL\]\/\//){
				$entrytype='inproceedings';
				print "this entry's type is: $entrytype with url\n";
				$regexformach='\[C\/OL\]\/\/';
				&amp;bfidentifier;
				
				$regexformach='C\/OL\]\/\/';
				&amp;bfaddressinbook;
			
				&amp;afpublisherbookurl;
			}elsif($reference=~m/\[C\]\/\//){
				$entrytype='inproceedings';
				print "this entry's type is: $entrytype \n";
				$regexformach='\[C\]\/\/';
				&amp;bfidentifier;
				
				$regexformach='C\]\/\/';
				&amp;bfaddressinbook;
				
				&amp;afpublisherbook;
			}
			
			if ($entrytype eq 'inproceedings'){
				if ($address=~m/\[S\.l\.\]/ or $address=~m/å‡ºç‰ˆåœ°ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$address=""; 
				}
				if ($publisher=~m/\[s\.n\.\]/ or $publisher=~m/å‡ºç‰ˆè€…ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$publisher=""; 
				}
				$date=$year;
			}
			
		}
		
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:è®ºæ–‡é›†/proceedings 
		#---------------------------------------------------------------
		if(1){
			if ($reference=~m/\[C\/OL\]\./){
				$entrytype='proceedings';
				print "this entry's type is: $entrytype with url\n";
				$regexformach='\[C\/OL\]\.';
				&amp;bfidentifier;
				
				$regexformach='C\/OL\]\.';
				&amp;bfaddressbook;
			
				&amp;afpublisherbookurl;
			}elsif($reference=~m/\[C\]\./){
				$entrytype='proceedings';
				print "this entry's type is: $entrytype \n";
				$regexformach='\[C\]\.';
				&amp;bfidentifier;
				
				$regexformach='C\]\.';
				&amp;bfaddressbook;
				
				&amp;afpublisherbook;
			}
			
			if ($entrytype eq 'proceedings'){
				if ($address=~m/\[S\.l\.\]/ or $address=~m/å‡ºç‰ˆåœ°ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$address=""; 
				}
				if ($publisher=~m/\[s\.n\.\]/ or $publisher=~m/å‡ºç‰ˆè€…ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$publisher=""; 
				}
				$date=$year;
				print 'date=',"$date";
			}
		}
		
		
		
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:æœªå‡ºç‰ˆç‰©/unpublished
		#---------------------------------------------------------------
		if(1){
			if ($reference=~m/\[Z\/OL\]\./){
				$entrytype='unpublished';
				print "this entry's type is: $entrytype with url\n";
				$regexformach='\[Z\/OL\]\.';
				&amp;bfidentifier;
				
				$regexformach='Z\/OL\]\.';
				&amp;bfaddressbook;
			
				&amp;afpublisherbookurlb;
			}elsif($reference=~m/\[Z\]\./){
				$entrytype='unpublished';
				print "this entry's type is: $entrytype \n";
				$regexformach='\[Z\]\.';
				&amp;bfidentifier;
				
				$regexformach='Z\]\.';
				&amp;bfaddressbook;
				
				&amp;afpublisherbookb;
			}
			
			if ($entrytype eq 'unpublished'){
				$date=$year;
				print 'date=',"$date";
			}
		}
		
			
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:æ‰‹å†Œã€æ¡£æ¡ˆ/manual
		#---------------------------------------------------------------
		if(1){
			if ($reference=~m/\[A\/OL\]\./){
				$entrytype='manual';
				print "this entry's type is: $entrytype with url\n";
				$regexformach='\[A\/OL\]\.';
				&amp;bfidentifier;
				
				$regexformach='A\/OL\]\.';
				&amp;bfaddressbook;
			
				&amp;afpublisherbookurlb;
			}elsif($reference=~m/\[A\]\./){
				$entrytype='manual';
				print "this entry's type is: $entrytype \n";
				$regexformach='\[A\]\.';
				&amp;bfidentifier;
				
				$regexformach='A\]\.';
				&amp;bfaddressbook;
				
				&amp;afpublisherbookb;
			}
			
			if ($entrytype eq 'manual'){
				$date=$year;
				print 'date=',"$date";
			}
		}
		
		
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:æŠ¥å‘Š/report
		#---------------------------------------------------------------
		if(1){
			if ($reference=~m/\[R\/OL\]\./){
				$entrytype='report';
				print "this entry's type is: $entrytype with url\n";
				$regexformach='\[R\/OL\]\.';
				&amp;bfidentifier;
				
				$regexformach='R\/OL\]\.';
				&amp;bfaddressbook;
			
				&amp;afpublisherbookurlb;
			}elsif($reference=~m/\[R\]\./){
				$entrytype='report';
				print "this entry's type is: $entrytype \n";
				$regexformach='\[R\]\.';
				&amp;bfidentifier;
				
				$regexformach='R\]\.';
				&amp;bfaddressbook;
				
				&amp;afpublisherbookb;
			}
			
			if ($entrytype eq 'report'){
				$date=$year;
				print 'date=',"$date";
			}
		
		}
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:æ&nbsp;‡å‡†/standard
		#---------------------------------------------------------------
		if(1){
			if ($reference=~m/\[S\/OL\]\./){
				$entrytype='standard';
				print "this entry's type is: $entrytype with url\n";
				$regexformach='\[S\/OL\]\.';
				&amp;bfidentifier;
				
				$regexformach='S\/OL\]\.';
				&amp;bfaddressbook;
				&amp;afpublisherbookurl;
			}elsif($reference=~m/\[S\]\./){
				$entrytype='standard';
				print "this entry's type is: $entrytype \n";
				$regexformach='\[S\]\.';
				&amp;bfidentifier;
				
				$regexformach='S\]\.';
				&amp;bfaddressbook;
				
				&amp;afpublisherbook;
			}elsif ($reference=~m/\[S\/OL\]\/\//){
				$entrytype='standard';
				print "this entry's type is: $entrytype with url\n";
				$regexformach='\[S\/OL\]\/\/';
				&amp;bfidentifier;
				
				$regexformach='S\/OL\]\/\/';
				&amp;bfaddressinbook;
			
				&amp;afpublisherbookurl;
			}elsif($reference=~m/\[S\]\/\//){
				$entrytype='standard';
				print "this entry's type is: $entrytype \n";
				$regexformach='\[S\]\/\/';
				&amp;bfidentifier;
				
				$regexformach='S\]\/\/';
				&amp;bfaddressinbook;
				
				&amp;afpublisherbook;
			}
			if ($entrytype eq 'standard'){
				if ($address=~m/\[S\.l\.\]/ or $address=~m/å‡ºç‰ˆåœ°ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$address=""; 
				}
				if ($publisher=~m/\[s\.n\.\]/ or $publisher=~m/å‡ºç‰ˆè€…ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$publisher=""; 
				}
				$date=$year;
				$note='standard';
				print 'date=',"$date";
				print 'note=',"$note";
			}
		
		}
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:å­¦ä½è®ºæ–‡/thesis
		#---------------------------------------------------------------
		if(1){
			if ($reference=~m/\[D\/OL\]\./){
				$entrytype='thesis';
				print "this entry's type is: $entrytype with url\n";
				$regexformach='\[D\/OL\]\.';
				&amp;bfidentifier;
				
				$regexformach='D\/OL\]\.';
				&amp;bfaddressbook;
			
				&amp;afpublisherbookurl;
			}elsif($reference=~m/\[D\]\./){
				$entrytype='thesis';
				print "this entry's type is: $entrytype \n";
				$regexformach='\[D\]\.';
				&amp;bfidentifier;
				
				$regexformach='D\]\.';
				&amp;bfaddressbook;
				
				&amp;afpublisherbook;
			}
			
			if ($entrytype eq 'thesis'){
				if ($address=~m/\[S\.l\.\]/ or $address=~m/å‡ºç‰ˆåœ°ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$address=""; 
				}
				if ($publisher=~m/\[s\.n\.\]/ or $publisher=~m/å‡ºç‰ˆè€…ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$publisher=""; 
				}
				$date=$year;
				print 'date=',"$date";
			}
		
		}
		
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:æ±‡ç¼–ä¸­æžå‡ºçš„æ–‡çŒ®/incollection 
		#---------------------------------------------------------------
		if(1){#\/\/
			if ($reference=~m/\[G\/OL\]\/\//){
				$entrytype='incollection';
				print "this entry's type is: $entrytype with url\n";
				$regexformach='\[G\/OL\]\/\/';
				&amp;bfidentifier;
				
				$regexformach='G\/OL\]\/\/';
				&amp;bfaddressinbook;
			
				&amp;afpublisherbookurl;
			}elsif($reference=~m/\[G\]\/\//){
				$entrytype='incollection';
				print "this entry's type is: $entrytype \n";
				$regexformach='\[G\]\/\/';
				&amp;bfidentifier;
				
				$regexformach='G\]\/\/';
				&amp;bfaddressinbook;
				
				&amp;afpublisherbook;
			}
			
			if ($entrytype eq 'incollection'){
				if ($address=~m/\[S\.l\.\]/ or $address=~m/å‡ºç‰ˆåœ°ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$address=""; 
				}
				if ($publisher=~m/\[s\.n\.\]/ or $publisher=~m/å‡ºç‰ˆè€…ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$publisher=""; 
				}
				$date=$year;
			}
			
		}
		
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:æ±‡ç¼–/collection 
		#---------------------------------------------------------------
		if(1){
			if ($reference=~m/\[G\/OL\]\./){
				$entrytype='collection';
				print "this entry's type is: $entrytype with url\n";
				$regexformach='\[G\/OL\]\.';
				&amp;bfidentifier;
				
				$regexformach='G\/OL\]\.';
				&amp;bfaddressbook;
			
				&amp;afpublisherbookurl;
			}elsif($reference=~m/\[G\]\./){
				$entrytype='collection';
				print "this entry's type is: $entrytype \n";
				$regexformach='\[G\]\.';
				&amp;bfidentifier;
				
				$regexformach='G\]\.';
				&amp;bfaddressbook;
				
				&amp;afpublisherbook;
			}
			
			if ($entrytype eq 'collection'){
				if ($address=~m/\[S\.l\.\]/ or $address=~m/å‡ºç‰ˆåœ°ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$address=""; 
				}
				if ($publisher=~m/\[s\.n\.\]/ or $publisher=~m/å‡ºç‰ˆè€…ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
					$publisher=""; 
				}
				$date=$year;
				print 'date=',"$date";
			}
		}
		
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:ä¸“åˆ©/patent
		#---------------------------------------------------------------
		if(1){
			if ($reference=~m/\[P\/OL\]\./){
				$entrytype='patent';
				print "this entry's type is: $entrytype with url\n";
				$regexformach='\[P\/OL\]\.';
				&amp;bfidentifier;
			}elsif($reference=~m/\[P\]\./){
				$entrytype='patent';
				print "this entry's type is: $entrytype \n";
				$regexformach='\[P\]\.';
				&amp;bfidentifier;
			}
			
			if($entrytype eq 'patent'){
				($postitle)=($reference=~m/$regexformach\s*(.*)/);
				print 'postitle=',$postitle,"\n";
				$titlenumber=$title;
				if($titlenumber=~m/:\s*\d.*/){
					($title,$number)=($titlenumber=~m/(.*):\s*(\d.*)/);
					print 'title  =',$title,"\n";
					print 'number =',$number,"\n";
				}
				
				if($postitle=~m/\[.*\]/ and $reference=~m/\[P\/OL\]\./){
					($date,$urldate,$posurl)=($postitle=~/(.*)\s*\[(.*)\]\.\s*(.*)/);
					print 'date=',$date,"\n";
					print 'urldate  =',$urldate,"\n";
					print 'posurl   =',$posurl,"\n";
					if($posurl=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
						($url,$doi)=($posurl=~m/(.*)DOI:(.*)\./i);
						print 'url=',"$url \n";
						print 'doi=',"$doi \n";
					}else{
						$url=$posurl;
						print 'url   =',"$url \n";
					}
				}else{
					$posurl=$postitle;
					if($posurl=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
						($date,$doi)=($posurl=~m/(.*)DOI:(.*)\./i);
						print 'date=',"$date \n";
						print 'doi =',"$doi \n";
					}else{
						$date=$posurl;
						print 'date   =',"$date \n";
					}
				}
			}
		}
		
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:ç”µå­èµ„æº/online
		#---------------------------------------------------------------
		if(1){
			if ($reference=~m/\[EB\/OL\]\./){#åŒ¹é…[EB/OL]åˆ¤æ–­ä¸ºonlineç±»åž‹
				$entrytype='online';
				print "this entry's type is: $entrytype \n";
				
				$regexformach='\[EB\/OL\]\.';
				&amp;bfidentifier;
				
				($postitle)=($reference=~m/$regexformach\s*(.*)/);
				print 'postitle=',$postitle,"\n";
				
				if($postitle=~m/\(.*\)/ and $postitle=~m/\[.*\]/){#å­˜åœ¨æ›´æ–°æ—¥æœŸå’Œå¼•ç”¨æ—¥æœŸ
					($eventdate,$urldate,$posurl)=($postitle=~/\s*\((.*)\)\s*\[(.*)\]\.\s*(.*)/);
				}elsif($postitle=~m/\(.*\)/ and $postitle!~m/\[.*\]/){#å­˜åœ¨æ›´æ–°æ—¥æœŸä½†æ—&nbsp;å¼•ç”¨æ—¥æœŸ
					($eventdate,$posurl)=($postitle=~/\s*\((.*)\)\.\s*(.*)/);
				}elsif($postitle!~m/\(.*\)/ and $postitle=~m/\[.*\]/){#å­˜åœ¨å¼•ç”¨æ—¥æœŸä½†æ—&nbsp;æ›´æ–°æ—¥æœŸ
					($urldate,$posurl)=($postitle=~/\s*\[(.*)\]\.\s*(.*)/);
				}else{
					($posurl)=($postitle=~/\s*(.*)/);
				}
				print 'eventdate=',$eventdate,"\n";
				print 'urldate  =',$urldate,"\n";
				print 'posurl   =',$posurl,"\n";
				
				if($posurl=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
					($url,$doi)=($posurl=~m/(.*)DOI:(.*)\./i);
					print 'url=',"$url \n";
					print 'doi=',"$doi \n";
				}else{
					$url=$posurl;
					print 'url   =',"$url \n";
				}
			}
		}
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:ä¸“è‘—/book
		#---------------------------------------------------------------
		if(1){
		if ($reference=~m/\[M\]\./){#åŒ¹é…[M]åˆ¤æ–­ä¸ºbookç±»åž‹
			print "this entry's type is: book \n";
			$entrytype='book';
			
			$regexformach='\[M\]\.';
			&amp;bfidentifier;
					
			$regexformach='M\]\.';
			&amp;bfaddressbook;
			
			&amp;afpublisherbook;
			
			if ($address=~m/\[S\.l\.\]/ or $address=~m/å‡ºç‰ˆåœ°ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
				$address=""; 
			}
			if ($publisher=~m/\[s\.n\.\]/ or $publisher=~m/å‡ºç‰ˆè€…ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
				$publisher=""; 
			}
			$date=$year;
		}
		}
		
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:ä¸“è‘—ä½†å­˜åœ¨ç½‘å€/book with url  
		#---------------------------------------------------------------
		if(1){
		if ($reference=~m/\[M\/OL\]\./){ 
			print "this entry's type is: book with url\n";
			$entrytype='book';
			
			$regexformach='\[M\/OL\]\.';
			&amp;bfidentifier;
			
			$regexformach='M\/OL\]\.';
			&amp;bfaddressbook;
		
			&amp;afpublisherbookurl;

			
			if ($address=~m/\[S\.l\.\]/ or $address=~m/å‡ºç‰ˆåœ°ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
				$address=""; 
			}
			if ($publisher=~m/\[s\.n\.\]/ or $publisher=~m/å‡ºç‰ˆè€…ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
				$publisher=""; 
			}
			$date=$year;
		}
		}
		
			
		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:ä¸“è‘—ä¸­æžå‡ºæ–‡çŒ®/inbook
		#---------------------------------------------------------------
		if(1){
		if ($reference=~m/\[M\]\/\//){#åŒ¹é…[M]//åˆ¤æ–­ä¸ºinbookç±»åž‹
			print "this entry's type is: inbook \n";
			$entrytype='inbook';
			
			$regexformach='\[M\]\/\/';
			&amp;bfidentifier;
					
			$regexformach='M\]\/\/';
			&amp;bfaddressinbook;
			
			&amp;afpublisherbook;#å‡ºç‰ˆç¤¾åŠä¹‹åŽçš„ä¿¡æ¯inbook/bookä¸€æ&nbsp;·çš„

			
			if ($address=~m/\[S\.l\.\]/ or $address=~m/å‡ºç‰ˆåœ°ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
				$address=""; 
			}
			if ($publisher=~m/\[s\.n\.\]/ or $publisher=~m/å‡ºç‰ˆè€…ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
				$publisher=""; 
			}
			$date=$year;
		}
		}
		

		#---------------------------------------------------------------
		#æ¡ç›®ç±»åž‹:ä¸“è‘—ä¸­æžå‡ºæ–‡çŒ®ä½†å­˜åœ¨ç½‘å€/inbook with url
		#---------------------------------------------------------------
		if(1){
			if ($reference=~m/\[M\/OL\]\/\//){#åŒ¹é…[M]//åˆ¤æ–­ä¸ºinbookç±»åž‹
			print "this entry's type is: inbook \n";
			$entrytype='inbook';
			
			
			$regexformach='\[M\/OL\]\/\/';
			&amp;bfidentifier;
					
			$regexformach='M\/OL\]\/\/';
			&amp;bfaddressinbook;
			
			&amp;afpublisherbookurl;#å‡ºç‰ˆç¤¾åŠä¹‹åŽçš„ä¿¡æ¯inbook/bookä¸€æ&nbsp;·çš„

			
			if ($address=~m/\[S\.l\.\]/ or $address=~m/å‡ºç‰ˆåœ°ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
				$address=""; 
			}
			if ($publisher=~m/\[s\.n\.\]/ or $publisher=~m/å‡ºç‰ˆè€…ä¸è¯¦/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
				$publisher=""; 
			}
			$date=$year;
		}
		}
		
			
		#---------------------------------------------------------------
		#è¾“å‡ºåˆ°bibæ–‡ä»¶ä¸­
		#---------------------------------------------------------------
		if(1){
			if($date=~m/-\d{4}/){#å­˜åœ¨enddateçš„æƒ…å†µä¸‹ï¼Œå°†ä¸­é—´çš„è¿žå­—ç¬¦è½¬åŒ–æˆæ–œæ&nbsp;
				print 'date=',$date,"\n";
				($datetempa,$datetempb)=($date=~m/(.*)-(\d{4}.*)/);
				$date=$datetempa.'/'.$datetempb;
				print 'date=',$date,"\n";
			}
		
			if($url=~m/.*\.$/){
				$urlplusdot=$url;
				($url)=($urlplusdot=~m/(.*)\.$/);#åŽ»æŽ‰å¤„äºŽæ¡ç›®æœ«å°¾çš„urlåœ°å€åŽçš„ç‚¹
			}
			#æœ€åŽè¾“å‡º
			print "\n";
			print 'authorlabel=',$authorlabel,"\n";
			#print '@',"$entrytype",'{',"ref-$nline-$sn",',',"\n";
			#print '@',"$entrytype",'{',"$author$date",',',"\n";
			print '@',"$entrytype",'{',"$authorlabel$date",',',"\n";
			$author&amp;&amp; print 'author    = {',$author,'},',"\n";
			$title&amp;&amp; print 'title     = {',$title,'},',"\n";
			$journal&amp;&amp; print 'journal   = {',$journal,'},',"\n";
			$translator&amp;&amp; print 'translator= {',$translator,'},',"\n";
			$bookauthor&amp;&amp; print 'bookauthor= {',$bookauthor,'},',"\n";
			$booktitle&amp;&amp; print 'booktitle = {',$booktitle,'},',"\n";
			$version&amp;&amp; print 'version   = {',$version,'},',"\n";
			$address&amp;&amp; print 'address   = {',$address,'},',"\n";
			$publisher&amp;&amp; print 'publisher = {',$publisher,'},',"\n";
			$type&amp;&amp; print 'type = {',$type,'},',"\n";
			$date&amp;&amp; print 'date      = {',$date,'},',"\n";
			$volume&amp;&amp; print 'volume      = {',$volume,'},',"\n";
			$number&amp;&amp; print 'number      = {',$number,'},',"\n";
			$pages&amp;&amp; print 'pages     = {',$pages,'},',"\n";
			$eventdate&amp;&amp; print 'eventdate   = {',$eventdate,'},',"\n";
			$urldate&amp;&amp; print 'urldate   = {',$urldate,'},',"\n";
			$url&amp;&amp; print 'url       = {',$url,'},',"\n";
			$doi&amp;&amp; print 'doi       = {',$doi,'},',"\n";
			$note&amp;&amp; print 'note       = {',$note,'},',"\n";
			print '}',"\n";
			
		
				
			#print FHW "\n@","$entrytype",'{',"ref-$nline-$sn-$authorlabel",',',"\n";
			print FHW "\n@","$entrytype",'{',"$authorlabel$date",',',"\n";
			$author&amp;&amp; print FHW 'author    = {',$author,'},',"\n";
			$title&amp;&amp; print FHW 'title     = {',$title,'},',"\n";
			$journal&amp;&amp; print FHW 'journal   = {',$journal,'},',"\n";
			$translator&amp;&amp; print FHW 'translator= {',$translator,'},',"\n";
			$bookauthor&amp;&amp; print FHW 'bookauthor= {',$bookauthor,'},',"\n";
			$booktitle&amp;&amp; print FHW 'booktitle = {',$booktitle,'},',"\n";
			$version&amp;&amp; print FHW 'version   = {',$version,'},',"\n";
			$address&amp;&amp; print FHW 'address   = {',$address,'},',"\n";
			$publisher&amp;&amp; print FHW 'publisher = {',$publisher,'},',"\n";
			$type&amp;&amp; print FHW 'type = {',$type,'},',"\n";
			$date&amp;&amp; print FHW 'date      = {',$date,'},',"\n";
			$volume&amp;&amp; print FHW 'volume      = {',$volume,'},',"\n";
			$number&amp;&amp; print FHW 'number      = {',$number,'},',"\n";
			$pages&amp;&amp; print FHW 'pages     = {',$pages,'},',"\n";
			$eventdate&amp;&amp; print FHW 'eventdate   = {',$eventdate,'},',"\n";
			$urldate&amp;&amp; print FHW 'urldate   = {',$urldate,'},',"\n";
			$url&amp;&amp; print FHW 'url       = {',$url,'},',"\n";
			$doi&amp;&amp; print FHW 'doi       = {',$doi,'},',"\n";
			$note&amp;&amp; print FHW 'note       = {',$note,'},',"\n";
			print FHW '}',"\n";
		}
	}
	
	
	print "\n";
	if($nline&gt;=$ne){last;} #å…ˆè·³è¿‡å‡&nbsp;è¡Œè¿›è¡Œï¼Œé…åˆåŽé¢çš„lastè¿›è¡Œå½“è¡Œæµ‹è¯•
}

	sub bfidentifier{#bfè¡¨ç¤ºbeforeï¼Œæ&nbsp;‡è¯†ç¬¦å‰æ‰€æœ‰çš„ç±»åž‹éƒ½ä¸€æ&nbsp;·
		#$regexpformach=@_;
		#print '@_=',@_,"\n";
		#print 'regexpformach=',"$regexpformach \n";
		#æ&nbsp;‡è¯†ç¬¦ä¹‹å‰å¾ˆå®¹æ˜“åŒ¹é…ä¸‰ä¸ªå†…å®¹ï¼Œåºå·ï¼Œä½œè€…å’Œæ&nbsp;‡é¢˜
		if($reference=~m/.*\D\.\s\D.*$regexformach/){#åŒ¹é…å­˜åœ¨ä½œè€…åŽçš„ç‚¹çš„è¯ï¼ŒåŒæ—¶ç‚¹å·å‘¨å›´ä¸æ˜¯æ•°å­—ï¼Œæœ‰æ—¶æ&nbsp;‡é¢˜ä¸­å¯èƒ½å‡ºçŽ°1.1è¿™æ&nbsp;·çš„ä¿¡æ¯
			($sn , $author , $title)=($reference=~m/\[(\d+)\]\s*(.*)\.\s(.*)$regexformach/);
			print 'sn    =',"$sn \n";
			print 'author=',"$author \n";#ä½œè€…å¤šä¸ªå§“åè¿˜éœ€è¦å¤„ç†ï¼Œè¿˜è¦æ³¨æ„æœ‰å‰åŽç¼€çš„æƒ…å†µ
			print 'title =',"$title \n";
			if($author=~m/ç­‰/){
				$author=~s/ç­‰/others/;#å°†ç­‰æ¢æˆothers
			}else{
				$author=~s/,\s*$//;#å°†æœ€åŽä¸€ä¸ªé€—å·åŽ»æŽ‰
			}
			if($author=~m/et\sal/){
				$author=~s/et\sal/others/;#å°†et al.æ¢æˆothers
			}else{
				$author=~s/,\s*$//;#å°†æœ€åŽä¸€ä¸ªé€—å·åŽ»æŽ‰
			}
			while($author=~m/,/){
				$author=~s/,/ and /;#å°†é€—å·æ¢æˆand
			}
			#å½“â€œç­‰â€ç›´æŽ¥ä¸Žä½œè€…ç›¸è¿žæ—¶ï¼Œéœ€è¦åœ¨otherså‰é¢å¢žåŠ&nbsp;ä¸€ä¸ªand
			if($author=~m/others/){#è‹¥å­˜åœ¨otheræ˜¯ä¸”å…¶å‰é¢æ²¡æœ‰andæ—¶
				if ($author=~m/and\s*others/){}
				else{
					$author=~s/others/ and others/;
				}
			}
			print 'author=',"$author \n";
		}else{#ä¸å­˜åœ¨ä½œè€…çš„è¯\[M\]\/\/
			($sn , $title)=($reference=~m/\[(\d+)\]\s*(.*)$regexformach/);#æ&nbsp;‡è¯†ç¬¦ä¹‹å‰å¾ˆå®¹æ˜“åŒ¹é…ä¸‰ä¸ªå†…å®¹ï¼Œåºå·ï¼Œä½œè€…å’Œæ&nbsp;‡é¢˜
			print 'sn    =',"$sn \n";
			print 'title =',"$title \n";
		}
		$title=~s/(^\s+|\s+$)//g; #å°†titleå‰åŽçš„ç©ºæ&nbsp;¼åŽ»æŽ‰
		
		#è¿›ä¸€æ­¥å¤„ç†è´£ä»»è€…çš„å§“å,ä¸»è¦é’ˆå¯¹è‹±æ–‡åéœ€è¦æœ‰ä¸€äº›ç¬¦å·è¿›è¡ŒåŒºåˆ†å§“ï¼Œåï¼Œå‰ç¼€å’ŒåŽç¼€ã€‚
		@names=split('and',$author);
		print 'names=',@names,"\n";
		$author="";
		$j=0;
		foreach $name(@names){#ä¸€ä¸ªå§“åä¸€ä¸ªå§“åå¤„ç†
			
			$j=$j+1;
			#print $name,"\n";
			@nameparts=split(' ',$name);
			#print 'nameparts=',@nameparts,"\n";
			
			$org=0;
			for($k=0;$k&lt;@nameparts;$k++){
			if(@nameparts[$k]=~m/.{2,}/ and @nameparts[$k]!~m/\s*von\s*/i and @nameparts[$k]!~m/\s*jr\s*/i){
			#å½“åˆ†è§£çš„å•ä½œè€…çš„å„ä¸ªéƒ¨åˆ†ï¼Œå­˜åœ¨ä¸¤ä¸ªä»¥ä¸Šä¸º2ä¸ªå­—ç¬¦ä»¥ä¸Šçš„æƒ…å†µï¼Œè¯´æ˜Žä¸æ˜¯ä¸€èˆ¬çš„å§“åè€Œæ˜¯æœºæž„ä½œè€…
			#è¿™ä¸ªåˆ¤æ–­æ˜¯å¯¹çš„ï¼Œå›&nbsp;ä¸ºå›½æ&nbsp;‡è§„å®šè¦æ±‚ç¼©å†™çš„ï¼Œå¦åˆ™å°±æ˜¯ä¸æ˜¯å›½æ&nbsp;‡äº†ï¼Œå¯¹äºŽä¸æ&nbsp;‡å‡†çš„æƒ…å½¢è¯·è¾“å‡ºåŽæ‰‹åŠ¨å¤„ç†å³åŽ»æŽ‰ä½œè€…å¤–åŒ…å›´çš„èŠ±æ‹¬å·ã€‚
				$org=$org+1;
				print 'org=',"$org\n";
			}
			}
			
			if(@nameparts&gt;1){
				if(@nameparts[0]=~m/\s*von\s*/i){#ç¡®å®šå§“çš„ä½ç½®
					$family=1;
					@nameparts[1]=@nameparts[1].',';
				}else{
					$family=0;
					@nameparts[0]=@nameparts[0].',';
				}
				if(@nameparts[-1]=~m/\s*jr\s*/i){#ç¡®å®šåŽç¼€çš„ä½ç½®
					@nameparts[-1]=@nameparts[-1].'.,';
					$given=@nameparts-2;
					$suffix=1;
				}else{
					$suffix=0;
					$given=@nameparts-1;
				}
				print 'family=',$family,"\n";
				print 'given=',$given,"\n";
				print 'suffix=',$suffix,"\n";
				print 'familyname=',@nameparts[$family],"\n";
				
				$namefmt="";
				for($i=0;$i&lt;=$family;$i++){
					$namefmt=$namefmt.@nameparts[$i].' ';
					print $i,$family,$namefmt,"\n";
				}
				if($suffix){
					$namefmt=$namefmt.@nameparts[-1].' ';
				}
				for($i=$family+1;$i&lt;=$given;$i++){
					$namefmt=$namefmt.@nameparts[$i].' ';
					print $i,$family,$namefmt,"\n";
				}
			}else{
				$namefmt=$name;
			}
			if($org &gt; 1){#å½“æ˜¯æœºæž„ä½œè€…æ—¶
				$namefmt='{'.$name.'}';
			}
			print 'namefmt=',"$namefmt \n";
			
			if($j==1){#æŠŠå§“åç”¨andè¿žæŽ¥èµ·æ¥
				$author=$namefmt;
			}else{
				$author=$author.' and '.$namefmt;
			}
			
			if($j==1){#æ&nbsp;¹æ®ç¬¬ä¸€ä¸ªä½œè€…æž„å»ºauthorlabel
				if($org &gt; 1){#æœºæž„ä½œè€…å–å„å•è¯çš„é¦–å­—æ¯
					$authorlabel='';
					for($k=0;$k&lt;@nameparts;$k++){
						($strtmp)=($nameparts[$k]=~/^(.)/);
						$authorlabel=$authorlabel.$strtmp;
					}
				}else{#å§“ååˆ™ä»…å–ä½œè€…å§“
					($authorlabel)=$nameparts[$family];
					if($authorlabel=~m/,$/){$authorlabel=~s/,$//;}#åŽ»æŽ‰æœ€åŽçš„é€—å·
				}
			}
		}
		while($author=~m/\s{2,}/){
				$author=~s/\s{2,}/ /;#å°†å¤šä½™çš„ç©ºæ&nbsp;¼åŽ»æŽ‰
			}
		while($author=~m/\.{2,}/){
				$author=~s/\.{2,}/\./;#å°†å¤šä½™çš„ç‚¹åŽ»æŽ‰
			}
		print 'author=',"$author\n";
	}

	
	sub bfaddressbook{#bfè¡¨ç¤ºbeforeï¼Œå‡ºç‰ˆè€…å‰bookå’Œinbookä¸ä¸€æ&nbsp;·
	#å¯¹äºŽbookç±»åž‹ï¼Œå¿…ç„¶å­˜åœ¨å‡ºç‰ˆåœ°å’Œå‡ºç‰ˆè€…ä¿¡æ¯ï¼Œä»¥æ­¤ä¸ºæ&nbsp;¹æ®å±•å¼€
		print 'sub:bfaddressbook ',"\n";
		if($reference!~m/$regexformach\s*[^:]+:\s\D{1,}.*/){#å¦‚æžœä¸å­˜åœ¨å‡ºç‰ˆåœ°å’Œå‡ºç‰ˆè€…ä¿¡æ¯
			($pospublisher)=($reference=~m/$regexformach\s*(.*)/);
			print 'pospublisher=',"$pospublisher \n";
		}else{
			($preaddress, $pospublisher)=($reference=~m/$regexformach\s*([^:]+):\s(\D{1,}.*)/);#æ&nbsp;‡è¯†ç¬¦ä¹‹åŽæ&nbsp;¹æ®ç¬¬ä¸€ä¸ªå†’å·åˆ†ä¸ºåŒ…æ‹¬åœ°å€çš„ä¿¡æ¯å’ŒåŒ…æ‹¬å‡ºç‰ˆè€…çš„ä¿¡æ¯ä¸¤éƒ¨åˆ†
			print 'preaddress  =',"$preaddress \n";
			print 'pospublisher=',"$pospublisher \n";
			
			#å¤„ç†å‡ºç‰ˆåœ°åŠå…¶å‰é¢çš„ä¿¡æ¯
			if ($preaddress=~m/.*\[S\.l\.\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[S.l.]ï¼Œè‹±æ–‡çš„ä¸€èˆ¬ä¸å­˜åœ¨è¯‘è€…ï¼Œæ‰€ä»¥ä¸‹é¢å¤„ç†æ¯”è¾ƒç®€å•
				$preaddress=~s/\[S\.l\.\]/\[S-l-\]/; #å…ˆå°†[S.l.]æ¢æˆ[S-l-]ç„¶åŽæ¢å›žæ¥
			}
				if ($preaddress=~m/.*\d.*\.\s*.*/){#åŒ¹é…å­˜åœ¨æ•°å­—ç‰ˆæœ¬çš„è¯
					($preversion, $version, $address)=($preaddress=~m/(.*)(\d)[^\.]*\.\s*(.*)/);
					print 'preversion  =',"$preversion \n";
					print 'version     =',"$version \n";
					print 'address     =',"$address \n";
					if($preversion=~m/.*\..*/){#å¦‚æžœå­˜åœ¨è¯‘è€…ç­‰ä¿¡æ¯
						($translator)=($preversion=~m/(.*)\..*/);
						print 'translator  =',"$translator \n";#ä½œè€…å¤šä¸ªå§“åè¿˜éœ€è¦å¤„ç†,è¿˜æœ‰è¯‘è¿™ä¸ªæ&nbsp;‡è¯†
					}
				}else {#ä¸å­˜åœ¨æ•°å­—ç‰ˆæœ¬çš„è¯
					if($preaddress=~m/.*\.\s+.*/){#å­˜åœ¨ç‚¹åŠ&nbsp;ç©ºæ&nbsp;¼ï¼Œè¡¨ç¤ºå­˜åœ¨å…¶ä»–ä½œè€…ä¿¡æ¯ï¼ŒåŒºåˆ«ç‚¹åœ¨æœ«å°¾ä½†æ—&nbsp;ç©ºæ&nbsp;¼
					($preversion,$address)=($preaddress=~m/(.*)\.\s*(.*)/);
					print 'preversion  =',"$preversion \n";
					print 'address     =',"$address \n";
					$translator=$preversion;
					print 'translator  =',"$translator \n";
					}else{
					$address=$preaddress;
					print 'address     =',"$address \n";
					}
				}
				
				if($translator=~m/,\s*è¯‘/){#å½“è¯‘è€…çœŸå®žå­˜åœ¨
					$translator=~s/,\s*è¯‘//;#å°†è¯‘åŽ»æŽ‰
					if($translator=~m/ç­‰/){
						$translator=~s/ç­‰/others/;#å°†ç­‰æ¢æˆothers
					}else{
						$translator=~s/,\s*$//;#å°†æœ€åŽä¸€ä¸ªé€—å·åŽ»æŽ‰
					}
					while($translator=~m/,/){
						$translator=~s/,/ and /;#å°†é€—å·æ¢æˆand
					}
					print 'translator  =',"$translator \n";
				}
				elsif($translator=~m/è¯‘$/)#è‹¥æœ€åŽä¸€ä¸ªå­—æ˜¯è¯‘
				{
					$translator=~s/è¯‘//;#å°†è¯‘åŽ»æŽ‰
					if($translator=~m/ç­‰/){
						$translator=~s/ç­‰/others/;#å°†ç­‰æ¢æˆothers
					}else{
						$translator=~s/,\s*$//;#å°†æœ€åŽä¸€ä¸ªé€—å·åŽ»æŽ‰
					}
					while($translator=~m/,/){
						$translator=~s/,/ and /;#å°†é€—å·æ¢æˆand
					}
					print 'translator  =',"$translator \n";
				}
				else {#å½“è¯‘è€…ä¸å­˜åœ¨ï¼Œé‚£ä¹ˆtranslatorä¸­ä¿¡æ¯å¯èƒ½æ˜¯éžæ•°å­—çš„ç‰ˆæœ¬ä¿¡æ¯
					unless($version) {#é™¤éžversionæ²¡æœ‰ä¿¡æ¯
					$version=$translator;
					$translator="";
					}else{
					print "version is already exisit!\n";
					print 'version=',$version,"\n";
					print 'translator=',$translator,"\n";
					}
				}
				
			if ($address=~m/.*\[S-l-\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[S-l-][S.l.]
				$address=~s/\[S-l-\]/\[S\.l\.\]/; #å°†[S-l-]æ¢å›ž[S.l.]
			}
		}
	}

	
	sub bfaddressinbook{#bfè¡¨ç¤ºbeforeï¼Œå‡ºç‰ˆè€…å‰bookå’Œinbookä¸ä¸€æ&nbsp;·
		($postitle)=($reference=~m/$regexformach\s*(.*)/);
		print 'postitle=',$postitle,"\n";
		if($postitle=~m/^[^:\.]+:[^:\.]+\./){#å½“å­˜åœ¨æžå‡ºæºç¬¬ä¸€é¡¹ä¸­å‡ºçŽ°:æ—¶
			$postitle=~s/:/colon/;#å…ˆå°†è¯¥å†’å·æ¢æˆcolon
			print 'postitle=',$postitle,"\n";
		}
		#å¯¹äºŽinbookç±»åž‹ï¼Œå¿…ç„¶å­˜åœ¨å‡ºç‰ˆåœ°å’Œå‡ºç‰ˆè€…ä¿¡æ¯ï¼Œä»¥æ­¤ä¸ºæ&nbsp;¹æ®å±•å¼€
		($preaddress, $pospublisher)=($postitle=~m/\s*(.*):\s(\D.*)/);
		#($preaddress, $pospublisher)=($postitle=~m/\s*([^:]+):\s(\D.*)/);
		#æ&nbsp;‡è¯†ç¬¦ä¹‹åŽæ&nbsp;¹æ®ç¬¬ä¸€ä¸ªå†’å·åˆ†ä¸ºåŒ…æ‹¬åœ°å€çš„ä¿¡æ¯å’ŒåŒ…æ‹¬å‡ºç‰ˆè€…çš„ä¿¡æ¯ä¸¤éƒ¨åˆ†
		print 'preaddress  =',"$preaddress \n";
		print 'pospublisher=',"$pospublisher \n";
		
		#å¤„ç†å‡ºç‰ˆåœ°åŠå…¶å‰é¢çš„ä¿¡æ¯
		if ($preaddress=~m/.*\[S\.l\.\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[S.l.]ï¼Œè‹±æ–‡çš„ä¸€èˆ¬ä¸å­˜åœ¨è¯‘è€…ï¼Œæ‰€ä»¥ä¸‹é¢å¤„ç†æ¯”è¾ƒç®€å•
			$preaddress=~s/\[S\.l\.\]/\[S-l-\]/; #å…ˆå°†[S.l.]æ¢æˆ[S-l-]ç„¶åŽæ¢å›žæ¥
		}
			if ($preaddress=~m/.*\d.*\.\s+.*/ and ($preaddress=~m/.*th\sed.*/ or $preaddress=~m/.*ç‰ˆ.*/)){#åŒ¹é…å­˜åœ¨æ•°å­—ç‰ˆæœ¬çš„è¯
				($preversion, $version, $address)=($preaddress=~m/(.*)(\d)[^\.]*\.\s+(.*)/);
				print 'preversion  =',"$preversion \n";
				print 'version     =',"$version \n";
				print 'address     =',"$address \n";
				if($preversion=~m/.*\.\s+.*/){#å¦‚æžœå­˜åœ¨è¯‘è€…ç­‰ä¿¡æ¯
					($translator)=($preversion=~m/(.*)\.\s+.*/);
					print 'translator  =',"$translator \n";#ä½œè€…å¤šä¸ªå§“åè¿˜éœ€è¦å¤„ç†,è¿˜æœ‰è¯‘è¿™ä¸ªæ&nbsp;‡è¯†
				}
			}else {#ä¸å­˜åœ¨æ•°å­—ç‰ˆæœ¬çš„è¯
				if($preaddress=~m/.*\.\s+.*/){#å­˜åœ¨ç‚¹åŠ&nbsp;ç©ºæ&nbsp;¼ï¼Œè¡¨ç¤ºå­˜åœ¨å…¶ä»–ä½œè€…ä¿¡æ¯ï¼ŒåŒºåˆ«ç‚¹åœ¨æœ«å°¾ä½†æ—&nbsp;ç©ºæ&nbsp;¼
					($preversion,$address)=($preaddress=~m/(.*)\.\s+(.*)/);
					print 'preversion  =',"$preversion \n";
					print 'address     =',"$address \n";
					if($preversion=~m/.*\.\s+.*/){#ä¸­é—´è¿˜å­˜åœ¨ç‚¹åŠ&nbsp;ç©ºæ&nbsp;¼
						($bookauthor,$booktitle)=($preversion=~m/(.*)\.\s+(.*)/);
						
						if($bookauthor=~m/ç­‰/){
							$bookauthor=~s/ç­‰/others/;#å°†ç­‰æ¢æˆothers
						}else{
							$bookauthor=~s/,\s*$//;#å°†æœ€åŽä¸€ä¸ªé€—å·åŽ»æŽ‰
						}
						if($bookauthor=~m/et\sal/){
							$bookauthor=~s/et\sal/others/;#å°†et al.æ¢æˆothers
						}else{
							$bookauthor=~s/,\s*$//;#å°†æœ€åŽä¸€ä¸ªé€—å·åŽ»æŽ‰
						}
						while($bookauthor=~m/,/){
							$bookauthor=~s/,/ and /;#å°†é€—å·æ¢æˆand
						}
						print 'bookauthor=',"$bookauthor \n";
					}else{
						$booktitle=$preversion;
					}
				}else{
				$address=$preaddress;
				print 'address     =',"$address \n";
				}
			}
			
		if ($address=~m/.*\[S-l-\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[S-l-][S.l.]
			$address=~s/\[S-l-\]/\[S\.l\.\]/; #å°†[S-l-]æ¢å›ž[S.l.]
		}
		if ($booktitle=~m/.*colon.*/) {#å½“å­˜åœ¨colon
			$booktitle=~s/colon/:/; #å°†colonæ¢å›ž:
		}
		
		#è¿›ä¸€æ­¥å¤„ç†è´£ä»»è€…çš„å§“å,ä¸»è¦é’ˆå¯¹è‹±æ–‡åéœ€è¦æœ‰ä¸€äº›ç¬¦å·è¿›è¡ŒåŒºåˆ†å§“ï¼Œåï¼Œå‰ç¼€å’ŒåŽç¼€ã€‚
		@names=split('and',$bookauthor);
		print 'names=',@names,"\n";
		$bookauthor="";
		$j=0;
		foreach $name(@names){
			$j=$j+1;
			#print $name,"\n";
			@nameparts=split(' ',$name);
			#print 'nameparts=',@nameparts,"\n";
			
			$org=0;
			for($k=0;$k&lt;@nameparts;$k++){
			if(@nameparts[$k]=~m/.{2,}/ and @nameparts[$k]!~m/\s*von\s*/i and @nameparts[$k]!~m/\s*jr\s*/i){
			#å½“åˆ†è§£çš„å•ä½œè€…çš„å„ä¸ªéƒ¨åˆ†ï¼Œå­˜åœ¨ä¸¤ä¸ªä»¥ä¸Šä¸º2ä¸ªå­—ç¬¦ä»¥ä¸Šçš„æƒ…å†µï¼Œè¯´æ˜Žä¸æ˜¯ä¸€èˆ¬çš„å§“åè€Œæ˜¯æœºæž„ä½œè€…
				$org=$org+1;
				print 'org=',"$org\n";
			}
			}
			
			if(@nameparts&gt;1){
				if(@nameparts[0]=~m/\s*von\s*/i){#ç¡®å®šå§“çš„ä½ç½®
					$family=1;
					@nameparts[1]=@nameparts[1].',';
				}else{
					$family=0;
					@nameparts[0]=@nameparts[0].',';
				}
				if(@nameparts[-1]=~m/\s*jr\s*/i){#ç¡®å®šåŽç¼€çš„ä½ç½®
					@nameparts[-1]=@nameparts[-1].'.,';
					$given=@nameparts-2;
					$suffix=1;
				}else{
					$suffix=0;
					$given=@nameparts-1;
				}
				#print 'family=',$family,"\n";
				#print 'given=',$given,"\n";
				#print 'suffix=',$suffix,"\n";
				
				$namefmt="";
				for($i=0;$i&lt;=$family;$i++){
					$namefmt=$namefmt.@nameparts[$i].' ';
					#print $i,$family,$namefmt,"\n";
				}
				if($suffix){
					$namefmt=$namefmt.@nameparts[-1].' ';
				}
				for($i=$family+1;$i&lt;=$given;$i++){
					$namefmt=$namefmt.@nameparts[$i].' ';
				}
			}else{
				$namefmt=$name;
			}
			if($org &gt; 1){#å½“æ˜¯æœºæž„ä½œè€…æ—¶
				$namefmt='{'.$name.'}';
			}
			#print 'namefmt=',"$namefmt \n";
			
			if($j==1){
				$bookauthor=$namefmt;
			}else{
				$bookauthor=$bookauthor.' and '.$namefmt;
			}
		}
		while($bookauthor=~m/\s{2,}/){
				$bookauthor=~s/\s{2,}/ /;#å°†å¤šä½™çš„ç©ºæ&nbsp;¼åŽ»æŽ‰
			}
		while($bookauthor=~m/\.{2,}/){
				$bookauthor=~s/\.{2,}/\./;#å°†å¤šä½™çš„ç‚¹åŽ»æŽ‰
			}
		print 'bookauthor=',"$bookauthor\n";
	}
	

	sub afpublisherbook{#afè¡¨ç¤ºafterï¼Œå‡ºç‰ˆè€…åŽbookå’Œinbookä¸€æ&nbsp;·ï¼Œä½†å¦‚æžœå­˜åœ¨urlåˆ™ä¸åŒ
	    #å¤„ç†å‡ºç‰ˆè€…åŠå…¶åŽé¢çš„ä¿¡æ¯
		if ($pospublisher=~m/.*\[s\.n\.\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
			$pospublisher=~s/\[s\.n\.\]/\[s-n-\]/; #å…ˆå°†[s.n.]æ¢æˆ[s-n-]ç„¶åŽæ¢å›žæ¥
		}
			if ($pospublisher=~m/.*,\s*\d{4}\S*/){#åŒ¹é…å­˜åœ¨å¹´ä»½çš„è¯
				($publisher, $year, $posyear)=($pospublisher=~m/(.*),\s*(\d{4})(.*)/);
				print 'publisher=',"$publisher \n";
				print 'year     =',"$year \n";
				print 'posyear  =',"$posyear \n";
				if($posyear=~m/^:/){#åŒ¹é…å­˜åœ¨é¡µç&nbsp;å‰é¢çš„å†’å·çš„è¯
					($pages, $pospages)=($posyear=~m/^:([^\.]+)\.(.*)/);
					print 'pages   =',"$pages \n";
					print 'pospages=',"$pospages \n";
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
					($doi)=($pospages=~m/DOI:(.*)\./i);
					print 'doi=',"$doi \n";
					}
				}else{#ä¸å­˜åœ¨é¡µç&nbsp;çš„è¯
					if($posyear=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
					($doi)=($posyear=~m/DOI:(.*)\./i);
					print 'doi=',"$doi \n";
					}
				}
			}else{#ä¸å­˜åœ¨å¹´ä»½ï¼ŒåŒ¹é…ä¸€ä¸‹æ˜¯å¦å­˜åœ¨å†’å·å’Œé¡µç&nbsp;
				if($pospublisher=~m/.*[^DOI]:.*/i){#å½“å­˜åœ¨ä¸æ˜¯doiåŽé¢çš„å†’å·æ—¶ï¼Œè¯´æ˜Žæœ‰é¡µç&nbsp;
					($publisher, $pages, $pospages)=($pospublisher=~m/([^:]*):([^\.]*)\.(.*)/);
					print 'publisher=',"$publisher \n";
					print 'pages    =',"$pages \n";
					print 'pospages =',"$pospages \n";
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
					($doi)=($pospages=~m/DOI:(.*)\./i);
					print 'doi=',"$doi \n";
					}
				}else{#æ²¡æœ‰é¡µç&nbsp;å†’å·ä»¥ç‚¹ä½œä¸ºå‡ºç‰ˆè€…åŽçš„åˆ†éš”ç‚¹
					($publisher, $pospages)=($pospublisher=~m/([^\.]*)\.(.*)/);
					print 'publisher=',"$publisher \n";
					print 'pospages =',"$pospages \n";
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
					($doi)=($pospages=~m/DOI:(.*)\./i);
					print 'doi=',"$doi \n";
					}
				}
			}
		if ($publisher=~m/.*\[s-n-\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s-n-]
			$publisher=~s/\[s-n-\]/\[s\.n\.\]/; #å°†[s-n-]æ¢å›ž[s.n.]
		}
	}
	
	
	sub afpublisherbookurl{#afè¡¨ç¤ºafterï¼Œå‡ºç‰ˆè€…åŽbookå’Œinbookä¸€æ&nbsp;·ï¼Œä½†å¦‚æžœå­˜åœ¨urlåˆ™ä¸åŒ
			#å¤„ç†å‡ºç‰ˆè€…åŠå…¶åŽé¢çš„ä¿¡æ¯
		if ($pospublisher=~m/.*\[s\.n\.\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
			$pospublisher=~s/\[s\.n\.\]/\[s-n-\]/; #å…ˆå°†[s.n.]æ¢æˆ[s-n-]ç„¶åŽæ¢å›žæ¥
		}
			if ($pospublisher=~m/.*,\s*\d{4}[^\d-]/){#åŒ¹é…å­˜åœ¨å¹´ä»½çš„è¯,4ä¸ªæ•°å­—åŽé¢è·Ÿç€ä¸èƒ½æ˜¯æ•°å­—å’Œè¿žå­—ç¬¦-
				($publisher, $year, $posyear)=($pospublisher=~m/(.*),\s*(\d{4})(.*)/);
				print 'publisher=',"$publisher \n";
				print 'year     =',"$year \n";
				print 'posyear  =',"$posyear \n";
				if($posyear=~m/^:/){#åŒ¹é…å­˜åœ¨é¡µç&nbsp;å‰é¢çš„å†’å·çš„è¯
					($pages, $pospages)=($posyear=~m/^:([^\.]+)\.(.*)/);
					print 'pages   =',"$pages \n";
					print 'pospages=',"$pospages \n";
					if($pages=~m/\[.*\]/){
						($pagesa, $urldate)=($pages=~m/(.*)\[(.*)\]/);
						$pages=$pagesa;
						print 'urldate=',"$urldate \n";
						print 'pages=',"$pages \n";
					}
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
						($url, $doi)=($pospages=~m/(.*)\.\s*DOI:(.*)\./i);
						print 'url=',"$url \n";
						print 'doi=',"$doi \n";
					}else{
						($url)=($pospages=~m/(.*)\./i);
						print 'url=',"$url \n";
					}
				}
				else{#ä¸å­˜åœ¨é¡µç&nbsp;çš„è¯
					if($posyear=~m/\[.*\]/){
						($urldate,$pospages)=($posyear=~m/.*\[(.*)\]\.(.*)/);
						print 'urldate=',"$urldate \n";
						print 'pospages=',"$pospages \n";
					}
					else{#ä¸å­˜åœ¨é¡µç&nbsp;,åˆä¸å­˜åœ¨å¼•ç”¨æ—¥æœŸçš„è¯ï¼Œé‚£ä¹ˆä¼šæœ‰ä¸€ä¸ªç‚¹å’Œç©ºæ&nbsp;¼
						($pospages)=($posyear=~m/.*\s(.*)/);
						print 'pospages=',"$pospages \n";
					}
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
						($url, $doi)=($pospages=~m/(.*)\.\s*DOI:(.*)\./i);
						print 'url=',"$url \n";
						print 'doi=',"$doi \n";
					}else{
						($url)=($pospages=~m/(.*)\./i);
						print 'url=',"$url \n";
					}
				}
			}else{#ä¸å­˜åœ¨å¹´ä»½ï¼ŒåŒ¹é…ä¸€ä¸‹æ˜¯å¦å­˜åœ¨å†’å·å’Œé¡µç&nbsp;
				if($pospublisher=~m/.*[^DOIhttp]:.*/i){#å½“å­˜åœ¨ä¸æ˜¯doiæˆ–httpåŽé¢çš„å†’å·æ—¶ï¼Œè¯´æ˜Žæœ‰é¡µç&nbsp;
					($publisher, $pages, $pospages)=($pospublisher=~m/([^:]*):([^\.]*)\.(.*)/);
					print 'publisher=',"$publisher \n";
					print 'pages    =',"$pages \n";
					print 'pospages =',"$pospages \n";
					if($pages=~m/\[.*\]/){
						($pagesa, $urldate)=($pages=~m/(.*)\[(.*)\]/);
						$pages=$pagesa;
						print 'urldate=',"$urldate \n";
						print 'pages=',"$pages \n";
					}
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
						($url, $doi)=($pospages=~m/(.*)\.\s*DOI:(.*)\./i);
						print 'url=',"$url \n";
						print 'doi=',"$doi \n";
					}else{
						($url)=($pospages=~m/(.*)\./i);
						print 'url=',"$url \n";
					}
				}else{#æ²¡æœ‰é¡µç&nbsp;å†’å·ä»¥ç‚¹ä½œä¸ºå‡ºç‰ˆè€…åŽçš„åˆ†éš”ç‚¹
					($publisher, $pospages)=($pospublisher=~m/([^\.]*)\.(.*)/);
					print 'publisher=',"$publisher \n";
					print 'pospages =',"$pospages \n";
					if($publisher=~m/\[.*\]/){
						($publishera, $urldate)=($publisher=~m/(.*)\[(.*)\]/);
						$publisher=$publishera;
						print 'urldate=',"$urldate \n";
						print 'publisher=',"$publisher \n";
					}
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
						($url, $doi)=($pospages=~m/(.*)\.\s*DOI:(.*)\./i);
						print 'url=',"$url \n";
						print 'doi=',"$doi \n";
					}else{
						($url)=($pospages=~m/(.*)\./i);
						print 'url=',"$url \n";
					}
				}
			}
		if ($publisher=~m/.*\[s-n-\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s-n-]
			$publisher=~s/\[s-n-\]/\[s\.n\.\]/; #å°†[s-n-]æ¢å›ž[s.n.]
		}
	}


	sub afpublisherbookb{#afè¡¨ç¤ºafterï¼Œå‡ºç‰ˆè€…åŽbookå’Œinbookä¸€æ&nbsp;·ï¼Œä½†å¦‚æžœå­˜åœ¨urlåˆ™ä¸åŒ
	    #å¤„ç†å‡ºç‰ˆè€…åŠå…¶åŽé¢çš„ä¿¡æ¯
		if ($pospublisher=~m/.*\[s\.n\.\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
			$pospublisher=~s/\[s\.n\.\]/\[s-n-\]/; #å…ˆå°†[s.n.]æ¢æˆ[s-n-]ç„¶åŽæ¢å›žæ¥
		}
			if ($pospublisher=~m/.*[\.\s,]*\d{4}[\D\S]+/){#åŒ¹é…å­˜åœ¨å¹´ä»½çš„è¯ï¼Œå¹´ä»½å‰é¢æ²¡æœ‰é€—å·+ç©ºæ&nbsp;¼
				($publisher, $year, $posyear)=($pospublisher=~m/(.*)[\.\s,]*(\d{4})([\D\S].*)/);
				print 'publisher=',"$publisher \n";
				if($publisher=~m/[,\s]+$/){$publisher=~s/[,\s]+$//;}#åŽ»æŽ‰æœ€åŽçš„é€—å·
				unless($address){#å½“æ²¡æœ‰å‡ºç‰ˆåœ°æ—¶ï¼Œä¹Ÿæ²¡æœ‰å¿…è¦å­˜åœ¨
					$version=$publisher;
					$publisher='';
				}
				print 'year     =',"$year \n";
				print 'posyear  =',"$posyear \n";
				if($posyear=~m/^:/){#åŒ¹é…å­˜åœ¨é¡µç&nbsp;å‰é¢çš„å†’å·çš„è¯
					($pages, $pospages)=($posyear=~m/^:([^\.]+)\.(.*)/);
					print 'pages   =',"$pages \n";
					print 'pospages=',"$pospages \n";
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
					($doi)=($pospages=~m/DOI:(.*)\./i);
					print 'doi=',"$doi \n";
					}
				}else{#ä¸å­˜åœ¨é¡µç&nbsp;çš„è¯
					if($posyear=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
					($doi)=($posyear=~m/DOI:(.*)\./i);
					print 'doi=',"$doi \n";
					}
				}
			}else{#ä¸å­˜åœ¨å¹´ä»½ï¼ŒåŒ¹é…ä¸€ä¸‹æ˜¯å¦å­˜åœ¨å†’å·å’Œé¡µç&nbsp;
				if($pospublisher=~m/.*[^DOI]:.*/i){#å½“å­˜åœ¨ä¸æ˜¯doiåŽé¢çš„å†’å·æ—¶ï¼Œè¯´æ˜Žæœ‰é¡µç&nbsp;
					($publisher, $pages, $pospages)=($pospublisher=~m/([^:]*):([^\.]*)\.(.*)/);
					print 'publisher=',"$publisher \n";
					print 'pages    =',"$pages \n";
					print 'pospages =',"$pospages \n";
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
					($doi)=($pospages=~m/DOI:(.*)\./i);
					print 'doi=',"$doi \n";
					}
				}else{#æ²¡æœ‰é¡µç&nbsp;å†’å·ä»¥ç‚¹ä½œä¸ºå‡ºç‰ˆè€…åŽçš„åˆ†éš”ç‚¹
					($publisher, $pospages)=($pospublisher=~m/([^\.]*)\.(.*)/);
					print 'publisher=',"$publisher \n";
					print 'pospages =',"$pospages \n";
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
					($doi)=($pospages=~m/DOI:(.*)\./i);
					print 'doi=',"$doi \n";
					}
				}
				if($publisher=~m/,$/){$publisher=~s/,$//;}#åŽ»æŽ‰æœ€åŽçš„é€—å·
				unless($address){#å½“æ²¡æœ‰å‡ºç‰ˆåœ°æ—¶ï¼Œä¹Ÿæ²¡æœ‰å¿…è¦å­˜åœ¨
						$type=$publisher;
						$publisher='';
				}
			}
		if ($publisher=~m/.*\[s-n-\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s-n-]
			$publisher=~s/\[s-n-\]/\[s\.n\.\]/; #å°†[s-n-]æ¢å›ž[s.n.]
		}
	}
	
	
		
	sub afpublisherbookurlb{#afè¡¨ç¤ºafterï¼Œå‡ºç‰ˆè€…åŽbookå’Œinbookä¸€æ&nbsp;·ï¼Œä½†å¦‚æžœå­˜åœ¨urlåˆ™ä¸åŒ
			#å¤„ç†å‡ºç‰ˆè€…åŠå…¶åŽé¢çš„ä¿¡æ¯
		if ($pospublisher=~m/.*\[s\.n\.\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s.n.]
			$pospublisher=~s/\[s\.n\.\]/\[s-n-\]/; #å…ˆå°†[s.n.]æ¢æˆ[s-n-]ç„¶åŽæ¢å›žæ¥
		}
			if ($pospublisher=~m/.*[\.\s,]*\d{4}[^\d-]/){#åŒ¹é…å­˜åœ¨å¹´ä»½çš„è¯,4ä¸ªæ•°å­—åŽé¢è·Ÿç€ä¸èƒ½æ˜¯æ•°å­—å’Œè¿žå­—ç¬¦-
				($publisher, $year, $posyear)=($pospublisher=~m/(.*)[\.\s,]*(\d{4})([^\d-].*)/);
				print 'publisher=',"$publisher \n";
				print 'year     =',"$year \n";
				print 'posyear  =',"$posyear \n";
				if($publisher=~m/,$/){$publisher=~s/,$//;}#åŽ»æŽ‰æœ€åŽçš„é€—å·
				unless($address){#å½“æ²¡æœ‰å‡ºç‰ˆåœ°æ—¶ï¼Œä¹Ÿæ²¡æœ‰å¿…è¦å­˜åœ¨
					$version=$publisher;
					$publisher='';
				}
				if($posyear=~m/^:/){#åŒ¹é…å­˜åœ¨é¡µç&nbsp;å‰é¢çš„å†’å·çš„è¯
					($pages, $pospages)=($posyear=~m/^:([^\.]+)\.(.*)/);
					print 'pages   =',"$pages \n";
					print 'pospages=',"$pospages \n";
					if($pages=~m/\[.*\]/){
						($pagesa, $urldate)=($pages=~m/(.*)\[(.*)\]/);
						$pages=$pagesa;
						print 'urldate=',"$urldate \n";
						print 'pages=',"$pages \n";
					}
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
						($url, $doi)=($pospages=~m/(.*)\.\s*DOI:(.*)\./i);
						print 'url=',"$url \n";
						print 'doi=',"$doi \n";
					}else{
						($url)=($pospages=~m/(.*)\./i);
						print 'url=',"$url \n";
					}
				}
				else{#ä¸å­˜åœ¨é¡µç&nbsp;çš„è¯
					if($posyear=~m/\[.*\]/){
						($urldate,$pospages)=($posyear=~m/.*\[(.*)\]\.(.*)/);
						print 'urldate=',"$urldate \n";
						print 'pospages=',"$pospages \n";
					}
					else{#ä¸å­˜åœ¨é¡µç&nbsp;,åˆä¸å­˜åœ¨å¼•ç”¨æ—¥æœŸçš„è¯ï¼Œé‚£ä¹ˆä¼šæœ‰ä¸€ä¸ªç‚¹å’Œç©ºæ&nbsp;¼
						($pospages)=($posyear=~m/.*\s(.*)/);
						print 'pospages=',"$pospages \n";
					}
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
						($url, $doi)=($pospages=~m/(.*)\.\s*DOI:(.*)\./i);
						print 'url=',"$url \n";
						print 'doi=',"$doi \n";
					}else{
						($url)=($pospages=~m/(.*)\./i);
						print 'url=',"$url \n";
					}
				}
			}else{#ä¸å­˜åœ¨å¹´ä»½ï¼ŒåŒ¹é…ä¸€ä¸‹æ˜¯å¦å­˜åœ¨å†’å·å’Œé¡µç&nbsp;
				if($pospublisher=~m/.*[^DOIhttp]:.*/i){#å½“å­˜åœ¨ä¸æ˜¯doiæˆ–httpåŽé¢çš„å†’å·æ—¶ï¼Œè¯´æ˜Žæœ‰é¡µç&nbsp;
					($publisher, $pages, $pospages)=($pospublisher=~m/([^:]*):([^\.]*)\.(.*)/);
					print 'publisher=',"$publisher \n";
					print 'pages    =',"$pages \n";
					print 'pospages =',"$pospages \n";
					if($pages=~m/\[.*\]/){
						($pagesa, $urldate)=($pages=~m/(.*)\[(.*)\]/);
						$pages=$pagesa;
						print 'urldate=',"$urldate \n";
						print 'pages=',"$pages \n";
					}
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
						($url, $doi)=($pospages=~m/(.*)\.\s*DOI:(.*)\./i);
						print 'url=',"$url \n";
						print 'doi=',"$doi \n";
					}else{
						($url)=($pospages=~m/(.*)\./i);
						print 'url=',"$url \n";
					}
				}else{#æ²¡æœ‰é¡µç&nbsp;å†’å·ä»¥ç‚¹ä½œä¸ºå‡ºç‰ˆè€…åŽçš„åˆ†éš”ç‚¹
					($publisher, $pospages)=($pospublisher=~m/([^\.]*)\.(.*)/);
					print 'publisher=',"$publisher \n";
					print 'pospages =',"$pospages \n";
					if($publisher=~m/\[.*\]/){
						($publishera, $urldate)=($publisher=~m/(.*)\[(.*)\]/);
						$publisher=$publishera;
						print 'urldate=',"$urldate \n";
						print 'publisher=',"$publisher \n";
					}
					if($pospages=~m/DOI/i){#åŒ¹é…å­˜åœ¨doiçš„è¯
						($url, $doi)=($pospages=~m/(.*)\.\s*DOI:(.*)\./i);
						print 'url=',"$url \n";
						print 'doi=',"$doi \n";
					}else{
						($url)=($pospages=~m/(.*)\./i);
						print 'url=',"$url \n";
					}
				}
				if($publisher=~m/,$/){$publisher=~s/,$//;}#åŽ»æŽ‰æœ€åŽçš„é€—å·
				unless($address){#å½“æ²¡æœ‰å‡ºç‰ˆåœ°æ—¶ï¼Œä¹Ÿæ²¡æœ‰å¿…è¦å­˜åœ¨
						$type=$publisher;
						$publisher='';
				}
			}
		if ($publisher=~m/.*\[s-n-\].*/) {#å½“å­˜åœ¨è‹±æ–‡çš„[s-n-]
			$publisher=~s/\[s-n-\]/\[s\.n\.\]/; #å°†[s-n-]æ¢å›ž[s.n.]
		}
	}


	
close (FHR);
close (FHW);</pre></body></html>