私は*にマッチする正規表現が必要なプロジェクトに取り組んでいます。スペースやタブを1〜4つ続け、その後にテキスト行を続けます。今はテスト目的のためにlookbehindの後に*を使用しています。しかし、私は明示的に1つ、2つ、または4つのスペース/タブに一致させることができますが、1-4ではできません。私は、次のブロック数量範囲がlookbehindで機能していない
* test line here
* Second test
* Third test
* Another test
に対してテストだとこれらは私が交換した場合、私は同じだけの期待どおりに動作し、2行目と一致する(?<=(\*[ \t]{3})).*
を、テストしてる2パターンある3と1、2または4しかし、もし私はそれを次のパターンを形成する1,400に置き換えます(?<=(\*[ \t]{1,4})).*
それはもはや行のいずれとも一致しません。正直なところ、なぜそれを理解できません。私は成功なしでグーグルで試してみました。私はg(lobal)フラグを使用しています。
また、正規表現はまだOPはおそらく望んでないだろうことを言及する価値があるかもしれない - * 'うまくスペースにマッチします'ので、それは喜ん以上の4つのスペースにマッチします。 –
@Tim - それは良い点ですが、 '。* 'は、OPが奇妙な動作と見なす単純な例です。面白いのは背後にあります。 – Kobi
ありがとう、私はそれを見落とした。ちなみに、RegexBuddyは '{1,4}'については不平を言っていません(無限の量子ではなく、この有限の量子ではありません)。 –