タグ

regexに関するFalkyのブックマーク (5)

  • 正規表現の先読み・後読み

    正規表現の「先読み(lookahead)」「後読み(lookbehind)」について紹介します。 正規表現の「位置へのマッチ」 正規表現は、文字列のパターンマッチに使われます。たとえば [0-9]{4} は数字 4 つが並ぶ文字列にマッチする表現です。 多くの正規表現は「文字列」にマッチしますが、「文字列」ではなく「位置」にマッチする表現があります。これは、アンカーと呼ばれます。また、長さ 0 の文字列にマッチすると考えて、ゼロ幅アサーションとも呼ばれます。 アンカーの例として、^(先頭)$(末尾)\b(単語の境界)などがあります。 この例では、cat にはマッチします。一方、category や concat は cat を含みますが前後が単語の境界になっていないためマッチしません。 先読み 先読み(lookahead)は、位置にマッチする記法の一種です。位置の指定に正規表現を使います。

    正規表現の先読み・後読み
    Falky
    Falky 2022/08/23
    『実のところ、先読みを使わないと書けないパターンというものはありません』そんなことはなくない…?と思ったら例示見て笑ってしまったw 確かに出現しうるパターン全網羅できる場合ならベタ書きできるけど…笑
  • 君たちは正規表現におけるインド数字の罠にハマったことはあるかい?(١٢٣٤٥٦٧٨٩) - Qiita

    Pythonで書いてはいますが、内容を補足します。「'٢٠٢٢-٠٦'」という文字列が、数字4文字+ハイフン+数字2文字にマッチするかどうか、という正規表現を書いています。 一見するとどう見ても数字4桁ではないので、正規表現にマッチしないように見えますよね???? 実は正規表現にマッチします!!!というのが今回の記事の内容になります。 そもそも正規表現における数字の扱いとは 今回はPythonの正規表現のライブラリを利用しているので、公式のリファレンスを見てみましょう。 該当の部分には以下のような記述があります。 \d Unicode (str) パターンでは: 任意の Unicode 10 進数字 (Unicode 文字カテゴリ [Nd]) にマッチします。これは [0-9] とその他多数の数字を含みます。 ASCII フラグが使われているなら [0-9] のみにマッチします。 http

    君たちは正規表現におけるインド数字の罠にハマったことはあるかい?(١٢٣٤٥٦٧٨٩) - Qiita
    Falky
    Falky 2022/06/25
    定義済み文字クラス好きじゃないから必ず[0-9]で書くわ。言われてみると、正規表現覚えた時に危ないから極力やめろって教えられた気も…ていうか、だから好きじゃないんだっけ??そうかも?最近脳死で書いとるな…
  • Regulex:JavaScript Regular Expression Visualizer

    Visualize Export Image Embed On My Site! IgnoreCase Multiline GlobalMatch

    Falky
    Falky 2018/02/05
    正規表現の視覚化・可視化ツール。書くときには使わないけど、少し前に書いて構造忘れた正規表現とか他人の書いた正規表現を読み解くときの取っ掛かりに便利。表示方法は https://regexper.com/ よりは好き
  • regex101: build, test, and debug regex

    An explanation of your regex will be automatically generated as you type.

    regex101: build, test, and debug regex
  • Rubular: a Ruby regular expression editor and tester

    Rubular is a Ruby-based regular expression editor. It's a handy way to test regular expressions as you write them. To start, enter a regular expression and a test string. Or you can try an example.

    Rubular: a Ruby regular expression editor and tester
  • 1