2016-09-27 13 views
-1

に参加する私は260 \に提出されたの$ B \ 260と260の\ $ cを参加する必要があり$正規表現、反復フィールド

=LDR 00000nam 2200000Ia 45e0 
    =008 010101s9999\\\\xx\\\\\\\\\\\\000\0\und\d 
    =020 \\$a140257586 
    =041 \\$aeng 
    =080 \\$a321.78:2(540)BAS 
    =100 \\$aBasu, Kaushik, eds. 
    =245 \0$aUnravelling the nation 
    =245 \0$bsectarian conflict and India's secular identity 
    =245 \0$cedited by Kaushik Basu and Sanjay Subrahmanyam. 
    =260 \\$aNew Delhi 
    =260 \\$bPenguin 
    =260 \\$c1996 
    =300 \\$a244 p. 
    =300 \\$c19.00 cm. 
+0

あなたの投稿を校正してください。 '\\\ 'を書くことはあなたが思うことをしません。あなたが「提出」と言うとき、あなたは「フィールド」を意味しますか? –

答えて

0

検索提出: (。。$ \ = 260 ) \ r \ n = 260。 \ $ b(。*)\ r \ n = 260。 \する$ C

と交換(*): \ 1:$ Bの\ 2は、$ C \ 3

ブレーキにそれをダウン: 最初の括弧(=260.*\$a.*)は、\r\n改行を最初の行に一致*=260.*\$b(.*)、第2行目\r\n改行、第3行目*=260.*\$c(.*)です。

次に、新しい行のMARCに従って3つのかっこのマッチを組み合わせます。

+0

あなたは、OPがこの(間違って尋ねられる)質問では決して言わないことをいくつか想定しています。しかし、あなたのREはとにかく動作しません。 '(= 260 \ sの* \\\\\ $。*)[\ S \ S] *?= 260 \ sの* \\\\\ $ bの(。*)[\ S \ S] *?=あなたの仮定が正しい場合、260 \ s * \\\\\ $ c(。*) 'は解決策かもしれません。 [regex101](https://regex101.com/r/uA9mL1/1)を参照してください。私は :-)メモ帳++でそれを試みたが、問題のFileFormatは私がフィールド260、サブフィールドA、Bとは常にそのように見えるcが知っているMARCについて少し知っているとき – ClasG

+0

まあ、それは働いていた、(それも安全だろうその古いfixfield形式ので、明示的に先頭のスペースを指定する。 MARCファイルは正式に「出版、流通などの場所」ではなく「場所、出版、流通の名前と日付、である260ので、後で無効になります等」、それは私が私の置き換えパターンが間違っていることを実感MARC上に読み込み –

+0

...の世話をするために司書に任され、更新します。 –