デフォ子可愛いよデフォ子型文字列検出器

なに?

デフォ子可愛いよデフォ子型文字列とは、「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'

ん? じゃあ これで終わり?

以下の入力欄に文字列を入力して「検索」ボタンを押下すると、デフォ子可愛いよデフォ子型文字列を探し出します。

デフォ子可愛いよデフォ子型文字列を探し出す

検索結果

検索結果がここに表示されます。

場所は?