Es wird gesagt, dass es schwierig ist, E-Mail-Adressen im Programm zu analysieren, deshalb habe ich das ABNF mit vollem Funktionsumfang implementiert. Durch das Packen verschiedener Dinge können Sie JSON, JSON Pointer und JSON Patch einfach implementieren.
ABNF wird häufig in IETF-RFCs verwendet. E-Mail und JSON sind berühmt, und selbst das Schreiben von IP-Adresse und URL ist ABNF. Aus diesem Grund habe ich nur unzählige allgemeine Tools und Bibliotheken auf dem Markt gesehen, also habe ich es schnell geschafft.
Die Struktur ist nur eine Erweiterung von Parser, um so etwas wie eine Birda zu erstellen und sie dann von Text in ein Objekt zu konvertieren. ABNF selbst ist ebenfalls in ABNF geschrieben, aber da dies das erste Mal ist, wird es nur vom Builder erstellt. Da Sie einen Parser erstellen können, indem Sie das Format von JSON usw. angeben, können Sie ihn vervollständigen, indem Sie ein Builder-ähnliches Teil einbinden, das die Ausgabeteile zusammensetzt.
Ein Teil von RFC ABNF ist in SoftLibRFC zusammengefasst, daher werde ich die Verwendung vorstellen. Sie benötigen lediglich SoftLibRFC, SoftLibABNF und SoftLib. SoftLib JSON wird nicht verwendet. Derzeit ist nur der Quellcode verfügbar. Verwenden Sie ihn daher entsprechend.
Die Klasse net.siisise.abnf.rfc.IMF5322 ist die ABNF von RFC-Mail, und RFC 5322 ist fast dieselbe. IMF5322.angleAddr ist genau richtig, um nur E-Mail-Adressen zu definieren. Da die Definition in einer Variablen namens REG gespeichert ist, kann sie von dort übernommen oder veröffentlicht werden, wenn sie nicht veröffentlicht wird.
boolean b = IMF5322.REG.ref("angle-addr").eq(Mail Adresse);
Ich frage mich, ob es als boolesch beurteilt werden kann. Der einzelne ABNF ist eine ABNF-Klasse. Es gibt Methoden wie boolean eq (String) exakte Übereinstimmung und boolean ist (String) erste Übereinstimmung, also versuchen Sie es bitte. Wenn Sie es mit einer Klasse namens Packet kombinieren, können Sie verschiedene Dinge tun, aber diesmal wird es weggelassen. ABNF kann multipliziert und vergrößert werden.
Alles zusammen verwenden
Sie können ABNFReg benennen und registrieren und in der Definition darauf verweisen. .rule (Name, ABNF) und .rule (Name, Regel) .rule (Regel) sind alle registrierte ABNF. .ref (String) und .href (String) bringen den ABNF namentlich registriert. Da sich das Verhältnis der Registrierungsreihenfolge ändern kann, gibt es einen Unterschied, ob nicht registrierte Artikel abgerufen werden sollen oder nicht. Es ist auch möglich, mehrere Definitionen gleichzeitig mit .rulelist (String) zu registrieren. Möglicherweise ist eine Pause erforderlich.
Es ist seltsam, dass JSON bei der Erweiterung an Bord sein wird.
SoftLibRFC https://github.com/okomeki/SoftLibRFC SoftLibABNF https://github.com/okomeki/SoftLibABNF SoftLib https://github.com/okomeki/SoftLib RFC 5234 ABNF https://tools.ietf.org/html/rfc5234 RFC 8259 JSON https://tools.ietf.org/html/rfc8259
Recommended Posts