0

先日URL書き換えの記事を読んでいてこんな表現を目にしました

<conditions>
  <add input="{HTTP_HOST}" type=”Pattern” pattern="^([^.]+)\.mysite\.com$"> <!-- condition back-reference is captured here -->
 </conditions>

([^.]+)表現の意味以外はすべて理解しています。^ は始まりと . を意味することを理解しています。何かを意味しますが、表現全体は何を意味しますか?

4

5 に答える 5

2

[^.] means "any character but a dot". (In character classes, the ^ at the beginning means "not".) The dot has no meaning inside a character class other than "a dot".

the + means "one or more".

And the parentheses group the stuff inside them, and tell the regex engine to remember what it found there.

End result being, the whole expression would match something like "sub.mysite.com", and the parenthesized part would match "sub" and remember it (presumably for future use).

于 2012-04-21T12:20:21.637 に答える
1

そうでない 1 つまたは複数の文字の貪欲なキャプチャされた一致.(文字通り; 角括弧内は、「任意の文字」ではなく、.実際には を意味します)。.

于 2012-04-21T12:16:58.360 に答える
1

^角括弧内は入力アンカーの始まりではなく、文字クラスが一致するものを逆にします。したがって[^x]、「以外のすべてx」に一致します。

したがって、[^.]ドット以外のすべての 1 つ以上の出現に一致します。

于 2012-04-21T12:17:10.223 に答える
1
[^.]+

意味: ドットを除く任意の文字を 1 回以上繰り返します。

"[...]" は、いずれかを満たす文字のセットを定義します。

括弧の先頭にある「^」は、その文字セットが除外され、他のすべての文字が含まれることを意味します。^ はここでは文字としてカウントされません。

「+」は、少なくとも 1 回必要であり、複数回出現する可能性があることを意味します。

「。」この場合、単純なドットを意味します

于 2012-04-21T12:17:29.563 に答える
1

角括弧は、「囲まれた文字のいずれか」を意味します。角括弧内の最初の文字としてのキャレットは、その意味を「次の文字のいずれでもない」に変更し、ピリオドはその特別な意味を失います。プラスは「前の単位の 1 つ以上」を意味し、括弧は「内容を 1 つの単位として扱う」ことを意味します。

So([^.]+)は、「1 つの単位として扱われる、ピリオドではない 1 つ以上の文字」を意味します。

于 2012-04-21T12:18:48.147 に答える