diff --git a/lib/Parser.js b/lib/Parser.js index 10f6806..dcde1b4 100644 --- a/lib/Parser.js +++ b/lib/Parser.js @@ -26,25 +26,25 @@ const QUOTE_REGEX = />+$/; * @type {RegExp[]} */ const QUOTE_HEADERS_REGEX = [ - /^\s*(On(?:(?!.*On\b|\bwrote:)[\s\S])+wrote:)$/m, // On DATE, NAME wrote: - /^\s*(Le(?:(?!.*Le\b|\bécrit:)[\s\S])+écrit(\s|\xc2\xa0):)$/m, // On DATE, NAME wrote: - /^\s*(El(?:(?!.*El\b|\bescribió:)[\s\S])+escribi(ó|eron):)$/m, // On DATE, NAME wrote: - /^\s*(Il(?:(?!.*Il\b|\bscritto:)[\s\S])+scritto:)$/m, // On DATE, NAME wrote: + /^\s*(On(?:(?!On\b|\bwrote:)[\s\S])+wrote:)$/m, // On DATE, NAME wrote: + /^\s*(Le(?:(?!Le\b|\bécrit:)[\s\S])+écrit(\s|\xc2\xa0):)$/m, // On DATE, NAME wrote: + /^\s*(El(?:(?!El\b|\bescribió:)[\s\S])+escribi(ó|eron):)$/m, // On DATE, NAME wrote: + /^\s*(Il(?:(?!Il\b|\bscritto:)[\s\S])+scritto:)$/m, // On DATE, NAME wrote: /^\s*(Op\s[\S\s]+?(schreef|geschreven)[\S\s]+:)$/m, // Op DATE schreef NAME :, Op DATE heeft NAME het volgende geschreven: - /^\s*(Em(?:(?!.*Em\b|\bescreveu:)[\s\S])+escreveu:)$/m, // Em DATE, NAME escreveu: + /^\s*(Em(?:(?!Em\b|\bescreveu:)[\s\S])+escreveu:)$/m, // Em DATE, NAME escreveu: /^\s*((W\sdniu|Dnia)\s[\S\s]+?(pisze|napisał(\(a\))?):)$/mu, // W dniu DATE, NAME pisze|napisał: - /^\s*(Den\s.+\sskrev\s.+:)$/m, // Den DATE skrev NAME : - /^\s*(Am\s.+\sum\s.+\sschrieb\s.+:)$/m, // Am DATE um TIME schrieb NAME: + /^\s*(Den\s(?:(?!\sskrev\s).)+\sskrev\s.+:)$/m, // Den DATE skrev NAME : + /^\s*(Am\s(?:(?!\sum\s).)+\sum\s(?:(?!\sschrieb\s).)+\sschrieb\s.+:)$/m, // Am DATE um TIME schrieb NAME: /^(在[\S\s]+写道:)$/m, // > 在 DATE, TIME, NAME 写道: /^(20[0-9]{2}\..+\s작성:)$/m, // DATE TIME NAME 작성: /^(20[0-9]{2}\/.+のメッセージ:)$/m, // DATE TIME、NAME のメッセージ: - /^(.+\s<.+>\sschrieb:)$/m, // NAME schrieb: - /^\s*(From\s?:.+\s?(\[|<).+(\]|>))/mu, // "From: NAME " OR "From : NAME " OR "From : NAME"(With support whitespace before start and before <) - /^\s*(De\s?:.+\s?(\[|<).+(\]|>))/mu, // "De: NAME " OR "De : NAME " OR "De : NAME" (With support whitespace before start and before <) - /^\s*(Van\s?:.+\s?(\[|<).+(\]|>))/mu, // "Van: NAME " OR "Van : NAME " OR "Van : NAME" (With support whitespace before start and before <) - /^\s*(Da\s?:.+\s?(\[|<).+(\]|>))/mu, // "Da: NAME " OR "Da : NAME " OR "Da : NAME" (With support whitespace before start and before <) + /^(.+\s<[^>]+>\sschrieb:)$/m, // NAME schrieb: + /^\s*(From\s?:.+\s?[\[<][^\[\]<>]+[\]>])/mu, // "From: NAME " OR "From : NAME " OR "From : NAME"(With support whitespace before start and before <) + /^\s*(De\s?:.+\s?[\[<][^\[\]<>]+[\]>])/mu, // "De: NAME " OR "De : NAME " OR "De : NAME" (With support whitespace before start and before <) + /^\s*(Van\s?:.+\s?[\[<][^\[\]<>]+[\]>])/mu, // "Van: NAME " OR "Van : NAME " OR "Van : NAME" (With support whitespace before start and before <) + /^\s*(Da\s?:.+\s?[\[<][^\[\]<>]+[\]>])/mu, // "Da: NAME " OR "Da : NAME " OR "Da : NAME" (With support whitespace before start and before <) /^(20[0-9]{2}-(?:0?[1-9]|1[012])-(?:0?[0-9]|[1-2][0-9]|3[01]|[1-9])\s[0-2]?[0-9]:\d{2}\s[\S\s]+?:)$/m, // 20YY-MM-DD HH:II GMT+01:00 NAME : - /^\s*([a-z]{3,4}\.[\s\S]+\sskrev[\s\S]+:)$/m, // DATE skrev NAME : + /^\s*([a-z]{3,4}\.(?:(?!\sskrev)[\s\S])+\sskrev[\s\S]+:)$/m, // DATE skrev NAME : /^\s*(El(?:(?!^>*\s*El\b|\bha escrit:).){0,1000}ha escrit:)$/ms, // El DATE, NAME ha escrit: ];