1. ホーム
  2. regex

[解決済み] .*?と.*の正規表現の違いは何ですか?

2022-02-08 07:16:08

質問内容

正規表現を使って文字列を2つに分割しようとしています。文字列は以下のようなフォーマットになっています。

text to extract<number>

私は、これまで (.*?)<<(.*?)> はうまく動作するのですが、正規表現を少し読んでから、なぜ ? を表現しています。このサイトで見つけてからそうしているだけなので、何が違うのかよくわからないのですが。

どのように解決するのですか?

欲張り量詞と非欲張り量詞の違いである。

入力を考えてみましょう 101000000000100 .

使用方法 1.*1 , * は貪欲です。最後までマッチして、次に 1 を残すことになります。 1010000000001 .
.*? は欲がない。 * は何もマッチしませんが、マッチするまで余分な文字にマッチしようとします。 1 最終的に 101 .

すべての量詞は非貪欲モードを持っています。 .*? , .+? , .{2,6}? そして、さらに .?? .

あなたの場合、似たようなパターンで <([^>]*)> - は大なり記号以外にマッチします(厳密には、大なり記号以外の0文字以上にマッチします)。 > 間に <> ).

参照 数量化チートシート .