我想用正則表達式解析MARC記錄,並返回該字段作爲第一個捕獲的組,並將該值作爲第二個捕獲的組。下面是我有迄今爲正則表達式:如何使用正則表達式解析MARC記錄?
(\n[0-9]{3})[ 0-9]{4}([^\n]*)
最後捕獲組有([^\n]*)
被捕獲的一切,直到下一次換行,這與像線的偉大工程:
001 868229892
100 1 Montgomery, L. M.|q(Lucy Maud),|d1874-1942.,|eauthor.
245 10 Anne of Green Gables /|cL.M. Montgomery.
250 Aladdin hardcover edition.
264 1 New York :|bAladdin,|c2014.
300 440 pages ;|c22 cm
336 text|2rdacontent.
337 unmediated|2rdamedia.
338 volume|2rdacarrier.
然而,當談到這打破了線值,正則表達式不再起作用:
520 Anne, an eleven-year-old orphan, is sent by mistake to
live with a lonely, middle-aged brother and sister on a
Prince Edward Island farm and proceeds to make an
indelible impression on everyone around her.
650 0 Shirley, Anne (Fictitious character)|vJuvenile fiction.
下一站面積應高於650
。所以正則表達式應該捕獲所有東西,直到換行符後跟3位數字。
我確實嘗試過([^\n0-9]*)
,但這被解釋爲以任何順序匹配任何非數字或換行符的任何順序。我需要它匹配一個換行符和3位數字,其確切順序是。
它不工作。 – JakeParis
適用於regex101。 – RamenChef