カテゴリー
ネットのサービス

Autoregex.xyz – 英語で書いた文章から正規表現を作る変換サービス

AutoRegexは、英語から正規表現への変換をしてくれるというwebサービスです。

トップには「平易な英文からGPT-3を使って正規表現を生成します」とあります。

autoregex.xyz のトップ

メールアドレスで登録して試してみました。

“phone number”と入れて出てきたのはこんな正規表現。

\d{3}-\d{3}-\d{4}

北米の番号としてはありうる正規表現かな。文字と桁だけチェックできて、形式も限定されていますが。(参考: まじめな正規表現の例)

“Japanese phone number” だとこれが帰りました。

^\d{2}-\d{4}-\d{4}$

うん。だめですねこれ。携帯電話の番号とか地方の局番とかはマッチしなさそう。あと先ほどはなかった行頭行末の条件が増えています。

中身がどう動いているかわかりませんが、正規表現とその解説文(英文)をたくさん食わせて学習させてるということだと、その中の日本の電話番号に関する情報が間違ってるのかもしれません。

正規表現でよく揉める難しいやつ、”email address”を入れると、

[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+

はい。これはもともと簡単そうに見えて非常に難しい問題なのですが、かなり緩い正規表現になっています。簡易なチェックに使うのも問題ありそう。

トップページの例は英文で説明的に書いたものを正規表現化するものが多いので、こういうのも試しました。”word starts either a or b, then any alphabet follows, and ends with three digits”

^(a|b)[a-zA-Z]{3}[0-9]{3}$

言ってない条件が入ってますが、大きくは違ってないかと。

変換ボタンをもう一度押すと、出てくる正規表現は変わっていくようです。何回も試す事でより正解に近い正規表現が得られることもあるかもしれませんが、現時点では出てきた正規表現を理解して意図通りになってることを確認・必要に応じて修正するとか、大量にテストケースを書いてテストするとか(まあ、これは自分で作った正規表現でもすることですが)しないといけなさそうに思います。

現時点では利用には十分注意した方がいいと思いますが、いつか賢くなっていくなら助かる人もいそうなサービスです。

via reddit

カテゴリー
ゲーム

Regexアドベンチャー – 正規表現で戦うダンジョンRPG

Regex Adventure は、正規表現を解くことで進むことができるゲームアプリです。

[追記 7/4] デモ版がブラウザで遊べるようになっていました。やはりブラウザで遊べると敷居が下がりますね。

Regex Adventure サイトトップ

Windows / Linux / Mac 版が用意されているアプリは、レベル8 まで遊べる無料のデモ版と、追加で20面以上のレベルを含んだ$6.99(660円) の有料版がダウンロード可能です。

Regexアドベンチャー チュートリアル面

デモ版で遊んでみました。各レベルの目的は迷宮のゴールを目指す事。カーソルキーで上下左右に移動し、接敵したら Enter キーで戦闘モードに入ります。

攻撃は敵モンスターの名前に対して、マッチする正規表現を入力することで行われます。ただし、正規表現として入力できる記号は大きく制限されています。ダンジョンの途中で紫色のオーブを拾うことで使える記号が増えることもあります。

例えば、”ant” という名前の敵を倒すのに”.”と”a”のオーブだけを持っていれば、”…”とか”a..”といった入力でなければ相手にダメージを与えることができません。

戦闘の様子

複数の敵と接敵した場合、それらに共通する正規表現を作ることができれば、複数攻撃となります。複数攻撃しないと、生き残った敵の反撃をうけてしまいます。

また、敵の近くに味方が配置されている場合、味方の名前も該当してしまうような正規表現で攻撃すると、味方に流れ弾が当たってしまいます。

味方を攻撃せずに相手にだけダメージを与えるには

流れ弾を当てないように、手持ちのオーブを使って正規表現を組み立てなければならず、レベルを上げていくごとに新しい正規表現の使い方を増やしていけないと、勝つのが難しくなっていくというわけです。

via reddit/programming

関連

RegexOne – 正規表現を段階的に学べるインタラクティブ・チュートリアル

カテゴリー
ネットのサービス

iHateRegex – 正規表現サンプル集+構文図

iHateRegex は、正規表現のチートシートサイトです。

URLや日付、メールなどよく使われる正規表現はトップページに並べられていて、ワンクリックで

  • 正規表現
  • サンプル入力とマッチした箇所
  • 構文図

を見ることができます。

構文図を見ながら正規表現やサンプルデータを書き換えることで、その正規表現の理屈をいろいろと試して学習することができます。

また、それ以外の正規表現についても用途を入力することで(あれば)検索されます。

email(シンプルと複雑と2バージョンあります)のように正しさを追求しだすとたいへんな作業になるもの、ssn(アメリカのマイナンバー的な番号)やphone など地域が違えば正規表現も異なるだろうもの、などいろいろと突っ込みどころもありたいへんそうなサービスですが、世の中によくある形式に対する正規表現は個々人がその場で考えるよりも広く考え抜かれたものを採用したほうが良いと思いますし、こういうサービスが定番として使われるといい影響があるかなと思います。

サイトのソースも公開されていて、新しいtipを定義して追加依頼を掛けることもできます。

via Hacker News