1

ここに私の質問があります:

たとえば、パターンが次の場合:

abc?

次に、これは一致します: ab abc but not abd as c? 意味: ac がある場合は一致する、そうでない場合は心配ありません..

たとえば、次のようなものがあるとします。

->sometext<-->somemoretext<-

次のようなパターンがある場合: (これは貪欲です) ->.*<-のみに一致します:

->sometext<-->sometext<-

ただし、パターンが遅延している場合: ->.*?<-一致します: ->sometext< - AND ->sometext<- ...

もしも、 ?wter/not (最初の例のように) のようなものを意味し、2 番目の例の背後にあるロジックは何ですか? 誰か説明できますか? パターンが .* の場合、なぜ ->sometext-< で止まるのですか?

4

3 に答える 3

2

?さまざまな文脈でさまざまなことを意味します。

実際、c??は有効な式です。必要な場合にのみ「c」に一致すると表示されます。

疑問符には、実際には 2 つ以上の意味があります。例えば:

于 2013-01-23T21:39:46.767 に答える
2

? * または + または ? の後に配置した場合 怠け者にします。のように、0 文字との一致を試み、失敗した場合は 1 文字、失敗した場合は 2 文字を照合します... MAX 文字の照合とは対照的に、失敗した場合は MAX-1、失敗した場合は MAX-2 .. . これはデフォルトの動作です - 「貪欲」で、可能な限り一致させたいと考えています。

于 2013-01-24T03:08:21.207 に答える
1

このコンテキストで使用する場合:

abc?

次に、a、b、および c が存在する場合に一致させます。このコンテキストで使用する場合:

->.*?<-

->次に、 の最初の出現までのすべてを一致させ、その後に含めます<-。とは対照的に:

->.*<-

->これは、オプションの無限の数の任意の文字に加えて、一致することを意味し<-ます。もちろん、この場合、.*はむさぼり食います<-

于 2013-01-23T21:40:35.993 に答える