回答:
非貪欲演算子?
。そのようです:
.*?
非貪欲演算子は、可能な最短の一致を意味するものではありません。
アバブ
a.+?k
最後の3つの記号だけではなく、文字列全体(この例では)と一致します。
代わりに、可能な限り最小の一致を実際に見つけたいと思います。
つまり、 ' a
'の最後の一致は、のすべての一致を許可しk
ます。
これを行う唯一の方法は、次のような式を利用することだと思います。
a[^a]+?k
cab
。私の入力がでcaaacab
あり、a.*?b
それを検索すると、内部の短い一致ではなく完全な文字列が返されます。どのようにして後方から検索しb
ますか?
START[^START]*?END
とおりです(STARTとENDは開始文字と終了文字の正規表現です)。これは基本的に、「中間の文字に再度STARTが含まれないSTARTからENDまでのすべてに一致する」という意味です
abcabk
とa.+?k
、RegExは文字列全体と一致します。