【わんど工房】語群から拾ってできる単語を調べたい
こんにちは
今日は一枚謎・小謎の制作で頻出する、語群から単語を拾う話について書いていこうと思います。
「語群から1文字ずつ拾って作れる単語」を正規表現のみで検索するのが困難だったため、ツールを作りました。
3節から本題です。
1. 指定した文字のみで作られる単語を調べたい
対応表を使うときや、
イラストや、導いたワードから文字を拾って答えとなる単語を作るタイプの謎において、できる単語の一覧がピックアップされていると便利です。
文字を拾う謎の例
こんな時は、謎解き単語検索βの候補文字検索機能が使えます。
もしくは正規表現
これによって、桃太郎の一味を使ってうさぎやたぬき汁と言った言葉を得る
ことができます。
2. 各単語1文字ずつ拾いたい
この拾い方では、例示をしたにも関わらず文字を拾えないこともあります。
「退治」には「サル」はいらない。
また、横読みクロスワードのように、すべての単語から1文字ずつ拾って作りたいこともよくあります。
順番が決まっているものについては、正規表現を使うことで検索できます。
例えばこんな感じ
^[sunday]+[monday]+[tuesday]+[wednesday]+[thursday]+$
*(0文字以上)
?(0〜1文字)
+(1文字以上)
辺りの指定をいい感じに組み合わせることで様々な文字を拾うことができます。
問題は順不同で良いとき。
^(?=.*[いぬ])(?=.*[さる])(?=.*[きじ])(?=.*[ももたろう])....$
正規表現の肯定先読みパターンを使うことで、
どこかの文字に「い」「ぬ」のいずれかが含まれている
どこかの文字に「さ」「る」のいずれかが含まれている
どこかの文字に「き」「じ」のいずれかが含まれている
どこかの文字に「も」「も」「た」「ろ」「う」のいずれかが含まれている
4文字の言葉
を検索することができ、「芋汁」という結果を得ることができます。
しかし、桃太郎の4つの単語は互いに重なる文字がないためこの条件でも絞れたのであり、
重なる文字があれば複数の条件を同時に満たすため、うまくいきません。
例
^(?=.*[りんご])(?=.*[みかん])(?=.*[わんど])…$
どこかの文字に「り」「ん」「ご」のいずれかが含まれている
どこかの文字に「み」「か」「ん」のいずれかが含まれている
どこかの文字に「ぱ」「い」「ん」のいずれかが含まれている
3文字の言葉
この条件では、「ん」が含まれている3文字であればなんでもいいので、 「わんど」などが引っかかってしまいます。
工夫することで候補は減らせますが、どうも正規表現で書くのは難しい。
そこで、ツール化することにしました。
3. 文字拾いツールを作った
ツールにカンマ区切りで単語を入力することで、語群から1文字ずつとってできる単語のみを一瞬で出力します。
たくさんの語群から選ぶこともできます。
例えば上記の色の名前から4文字を取り出すと、
「色彩」「解読」「からくり」などがヒットします。
試しに謎を作りました。
4.余分な文字を入れたい
あ〜んまですべての文字を含めたキーワードを設定することで、「任意の1文字」を表現できます。
もしくは、ワイルドカードとして「*」が使えます。
その他、「単語に含まれている文字すべて」を1つの単語として指定したり、
同じ単語を複数回加えたりすることで、
複数回文字を拾わせることもできます。
5.配布先
こちらのわんど工房冬〜春号の有料パートにて、配布しています。
他のツールと合わせて3月末までの利用で500円になります。
6.内容物
文字拾いツール v1.2.0 一般語辞書
文字拾いツール v1.2.0 一般語辞書(ヘボン式ローマ字)
文字拾いツール v1.2.0 英語辞書
7. 220112追記
ヘボン式ローマ字に対応しました。