なに?
デフォ子可愛いよデフォ子型文字列とは、「3 つの部分に分割したとき、分割された文字列の最初の部分と最後の部分とが一致するような文字列」のことです。
厳密には、拡張正規表現 (.+).+\1
にマッチする文字列のことです。
例えば、「デフォ子可愛いよデフォ子」や「ダンスロボットダンス」はデフォ子可愛いよデフォ子型文字列です。 「デフォ子・可愛いよ・デフォ子」や「ダンス・ロボット・ダンス」のように分割することで、分割された文字列の最初の部分と最後の部分とを一致させることができます。 「ゴママヨ」はどのように分割しても、分割された最初の部分と最後の部分とを一致させられないため、デフォ子可愛いよデフォ子型文字列ではありません。
ところで、拡張正規表現 (.*).*\1
にマッチする文字列もデフォ子可愛いよデフォ子型文字列に含めるほうが「美しい」と思います。
これは空文字列⸺空文字列と空文字列と空文字列とに分けられ、最初と最後とが一致する⸺を含むからです。
しかし、これを含めると途端に世界は彩りを失います。
で?
Unix な世界にいて、デフォ子可愛いよデフォ子型文字列を探し出すには、以下のコマンドが便利です。
grep -E '(.+).+\1'
ANSI エスケープシーケンスが使えるような端末で、デフォ子可愛いよデフォ子型文字列を派手に表示するには以下のコマンドが便利です。
このコマンドには互換性がありません(POSIX で規定されていない \x1B
を利用しているためです)。
この代わりに Ctrl+V, Ctrl+[ を押下するなどして直接 ESC の文字(ASCII コード十六進表記で 0x1B)を挿入することもできます。
sed -E 's/(.+).+\1/\x1B[7m&\x1B[m/g'
ん? じゃあ これで終わり?
以下の入力欄に文字列を入力して「検索」ボタンを押下すると、デフォ子可愛いよデフォ子型文字列を探し出します。
検索結果
場所は?
- inaphon. ショートムービー「デフォ子の部屋」(UTAU×MMD). ニコニコ動画. 2009-09-10, (Accessed 2025-01-07).
- ナユタン星人. ダンスロボットダンス / 初音ミク. ニコニコ動画. 2016-12-06, (Accessed 2025-01-07).
- KusaReMKN. 厳密ではない正規表現(雰囲気で伝われ!)/\(.*\).*\1/ にマッチする文字列を「デフォ子かわいいよデフォ子型文字列」とか「ダンスロボットダンス型文字列」とかと呼びませんか? ちなみに文字列 ゴママヨ は要件を満たしません. X. 2025-01-07.