Ich persönlich betrachte Regex-Strings als Daten und nicht als Code, daher mag ich sie in meinem Code nicht - aber mir ist klar, dass dies unpraktisch und unbeliebt ist (Ja, mir ist klar, dass Sie mich nicht anschreien müssen).
Da es keinen nativen Weg gibt, dies zu tun, kann ich mir zwei Möglichkeiten einfallen lassen (nun, drei, aber die dritte ist, ähm, unnatürlich).
Meine persönliche Präferenz wäre es also, eine Datei einfach in Strings zu analysieren. Sie können jeden Eintrag in der Datei benennen und alle in eine Hash-Tabelle laden, um von Ihrem Code aus leicht darauf zugreifen zu können.
Zweite Wahl: Erstellen Sie eine Datei, die in einer Java-Oberfläche vorverarbeitet wird. es könnte dabei der Regex entkommen. Persönlich hasse ich die Codegenerierung, aber wenn die Java-Datei zu 100% nie von Menschen bearbeitet wurde, ist sie nicht schlecht (das wahre Übel sind generierte Dateien, die Sie voraussichtlich bearbeiten werden!).
Drittens (knifflig und wahrscheinlich eine schlechte Idee): Möglicherweise können Sie ein benutzerdefiniertes Doclet erstellen, das beim Kompilieren Zeichenfolgen aus Ihren Kommentaren in eine Textdatei oder eine Headerdatei extrahiert, und dann eine der beiden oben genannten Methoden verwenden. Dadurch bleiben Ihre Zeichenfolgen in derselben Datei, in der sie verwendet werden. Dies könnte sehr schwer richtig zu machen sein, und die Strafen für Misserfolge sind extrem, so dass ich es nicht einmal in Betracht ziehen würde, wenn ich nicht ein überwältigendes Bedürfnis und ein ziemlich beeindruckendes Talent hätte.
Ich schlage dies nur vor, weil Kommentare frei formuliert sind und Dinge innerhalb eines "Pre" -Tags ziemlich sicher vor Formatierern und anderen hässlichen Systemen sind. Das Doclet könnte dies extrahieren, bevor die Javadocs gedruckt werden, und sogar einige der generierten Javadocs hinzufügen, die auf Ihre Verwendung von Regex-Zeichenfolgen hinweisen.
Bevor ich abstimme und mir sage, dass dies eine dumme Idee ist - ich weiß, ich dachte nur, ich würde es vorschlagen, weil es interessant ist, aber meine Präferenz, wie ich oben sagte, ist eine einfache Textdatei ...