정규 표현식을 사용하여 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