Dieser Artikel handelt von der Generierung von Textdaten aus regulären Ausdrücken.
Szenarien, in denen Sie möglicherweise Textdaten aus regulären Ausdrücken generieren möchten, sind beispielsweise, wenn Sie Beispieldaten oder Fake-Daten benötigen oder einfach, weil das Aufschreiben aller Textkandidaten mühsam ist und das Schreiben in regulären Ausdrücken bei Notizen usw. übersichtlicher ist.
Das Folgende ist genau eine Frage dazu:
java - Using Regex to generate Strings rather than match them - Stack Overflow
Nach einer kurzen Suche, einschließlich des oben erwähnten Generex, fand ich noch eine weitere Ruby-Bibliothek.
mifmif/Generex: A Java library for generating String from a regular expression. tom-lord/regexp-examples: Generate strings that match a given regular expression
Diese ist neuer und da es Ruby ist, ist sie zugänglicher. Die Java-Version ist ziemlich alt, aber funktional scheinen sie sich nicht sehr zu unterscheiden. Da Ruby jedoch auch als “Sprache, die stark in regulären Ausdrücken ist” bekannt ist, scheint die Ruby-Version höhere Erwartungen zu haben.
Also habe ich es ausprobiert.
Die Installation ist wie folgt:
cat >> Gemfile
gem 'regexp-examples'
bundle install
Übrigens habe ich kürzlich ein Tool für Massen-Google-Suchen erstellt. Beim Suchen nach etwas ist es auf Englisch, aber da ich auch kein Muttersprachler bin, gibt es möglicherweise passendere Wörter. Zum Beispiel ist manchmal “create” passender als “make” oder umgekehrt. In solchen Fällen können Sie how to (make|create) something schreiben und Textdaten mit regexp-examples generieren und dann mit Google danach suchen.
how to make something
how to create something
Ich bin so sehr in meiner Programmierbegeisterung aufgegangen, dass ich sogar dachte “Ich möchte einen Roman in einer Programmiersprache schreiben.” Für effizientes Googeln habe ich den folgenden regulären Ausdruck mit regexp-examples ausprobiert:
require "regexp-examples"
# puts /a*/.examples #=> ['', 'a', 'aa']
puts /(writing|construct|make) (novel )?story (by|with) (programming|predicate logic)/.examples

Das Ergebnis ist wie folgt. Wunderbar.
writing story by programming
writing story by predicate logic
writing story with programming
writing story with predicate logic
writing novel story by programming
writing novel story by predicate logic
writing novel story with programming
writing novel story with predicate logic
construct story by programming
construct story by predicate logic
construct story with programming
construct story with predicate logic
construct novel story by programming
construct novel story by predicate logic
construct novel story with programming
construct novel story with predicate logic
make story by programming
make story by predicate logic
...
Nebenbei bemerkt, es scheint, dass die Programmierung von Romanen für die Menschheit noch zu früh ist. Das ist schade.