2 ポイント 投稿者 GN⁺ 2023-09-12 | 1件のコメント | WhatsAppで共有
  • この記事では、2つの正規表現(regexes)の差集合と共通部分を計算する方法について論じています。
  • 著者は、α < β = false、α = β = true、α > β = false、α & β = α ^ β = ∅、α - β = ∅ などの方程式と結果を示しながら、その過程を説明しています。
  • また、この記事には次のような正規表現の文法に関する簡単な紹介も含まれています:
    • '.' は任意の1文字に一致
    • 'xy' は連結: x に続いて y に一致
    • 'x|y' は選択: x または y に一致
    • 'x*' はクリーンスター: x に0回以上一致
    • '(xyz)' はグループ化: xyz を単一の項目として扱う
    • '()' は空の正規表現で、空文字列に一致
    • 'x+' はクリーンプラス: x に1回以上一致
    • 'x?' はオプショナル: 必要に応じて x に一致
    • 'x{n}' はべき乗: x を n 回連結
    • 'x{m,n}' は反復: x を m 回から n 回まで連結
    • '[a-z0-9]' はグループ化: グループ内のいずれか1文字に一致
    • '[^a-z0-9]' は否定グループ化: グループ内の文字以外のいずれか1文字に一致
    • '\c' はエスケープ: 特殊文字 c に一致
    • '\u001a' は Unicode エスケープ: 対応する UTF-16 文字に一致
    • 'a, b, c' はその他すべての文字がそれ自身に一致します。
  • この記事では、アンカー、ゼロ幅アサーション、後方参照、サブグループ抽出、検索や部分一致、動作を変更するその他のフラグといった、サポートされていない機能についても触れられています。
  • 詳細については、著者は 'antimirov' の GitHub ページを参照するよう述べています。
  • この記事の著者は、Twitter と Mastodon で @d6 として知られる Eiríkr Åsheim です。

1件のコメント

 
GN⁺ 2023-09-12
Hacker Newsの意見
  • この記事は、2つの正規表現(regexes)の差集合と共通部分を計算するツールについて論じている。
  • ユーザーは、3で割り切れる数をフィルタリングするような複雑な regexes を扱おうとすると、ツールが停止することがあると報告した。
  • このツールは、メールアドレスや URL のような特定タイプの文字列を検証するのに有用な、文字列クラスの階層を生成するために使える。
  • あるユーザーは、regex をさまざまな形でパースし、最終的にさまざまな言語のコードを出力する過程を示す類似の Web デモを作成した。
  • 正規表現は、複雑な数学理論を線形代数のような実用的インターフェースにまとめ上げる能力が評価された。
  • 一部のユーザーは、ツールが生成する和集合と共通部分の regexes の複雑さに驚き、最小の正規表現を生成することの方がより大きな課題かもしれないと示唆した。
  • このツールは、与えられた regexes に対する Deterministic Finite Automaton(DFA)のグラフィック表現を提供しており、ユーザーはこれを印象的だと評価した。
  • 一部のユーザーは、ツールが構文的に有効な URL やメールアドレス向けの regexes を処理するのに苦労していることに気づいた。
  • モバイル端末での使い勝手を向上させるため、regex 入力フィールドで自動提案機能をオフにすることが提案された。
  • あるユーザーは、「IP RegEx フィルター」設定の検証ロジックを書くために regex の共通部分という概念を使った経験を共有し、これがフィルターが動作しないというユーザーの苦情を防ぐのに役立ったと述べた。