2012-04-21 116 views
0

有一天,我正在經歷的文章URL重寫,我看到這個表情這在正則表達式中意味着什麼?

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

我明白了一切,除了什麼呢表達([^.]+)意思。我明白^意味着開始和。意味着什麼,但整個表達意味着什麼?

+0

[您可以將表達式粘貼到一個在線解釋器,例如這裏](http://www.myezapp.com/apps/dev/regexp/show.ws)或RegexBuddy是一個不錯的桌面應用程序,帶有RegEx解釋器。方括號裏面的方法是 – 2012-04-21 12:17:07

+0

,事情有點不同。 '^'的意思是:「不是以下任何一個字符」,而「。」表示只是一個點。 – Aziz 2012-04-21 12:18:18

回答

2

[^.]的意思是「任何字符,但一個點」。 (在字符類中,^開頭的意思是「不」)。除了「點」之外,點在字符類中沒有意義。

+表示「一個或多個」。

圓括號將它們內部的東西分組,並告訴正則表達式引擎記住它在那裏找到的東西。

最終結果是,整個表達式會匹配「sub.mysite.com」之類的東西,而括號內的部分會匹配「sub」並記住它(大概是爲了將來的使用)。

1

一個不是.(字面上;在方括號內,.真的意思是.,而不是'任何字符')的一個或多個字符的貪婪捕獲匹配。

1

^方括號內不是輸入錨點的開始,而是反轉字符類匹配的內容。因此[^x]會匹配「除x之外的任何內容」。

因此,[^.]匹配一個或多個除點之外的所有事件。

1
[^.]+ 

意思是:除點之外的任何字符,重複一次或多次。

「[...]」定義了一組字符,其中任何一個滿足。

括號起始處的「^」表示該字符集將被排除,並且將包括所有其他字符。 ^在這裏不算數字。

「+」意味着它必須至少一次,並且可以出現多於一次

「」在這種情況下意味着一個簡單的點

1

方括號表示「任何附加字符」。作爲方括號內的第一個字符的插入符號將其含義改爲「以下任何字符都不是」,並且一段時間失去其特殊含義。加號意味着「一個或多個先前的單位」,而parens意思是「將內容視爲一個單位」。

所以([^.]+)表示「一個或多個不是句點的字符,視爲一個單位」。

相關問題