[英]What does this mean in regular expression?
前幾天,我正在閱讀有關URL重寫的文章,我看到了這個表達式
<conditions>
<add input="{HTTP_HOST}" type=”Pattern” pattern="^([^.]+)\.mysite\.com$"> <!-- condition back-reference is captured here -->
</conditions>
除了表達式([^.]+)
是什么意思,我都理解。 我明白^的意思是開始和。 意味着什么,但整個表達是什么意思?
[^.]
意思是“除了點以外的任何字符”。 (在字符類中,開頭的^
表示“不是”。)點在字符類中除“點”外沒有其他意義。
+
表示“一個或多個”。
括號將其中的內容分組,並告訴正則表達式引擎記住在其中找到的內容。
最終結果是,整個表達式將匹配“ sub.mysite.com”之類的內容,並且括號部分將匹配“ sub”並記住它(大概供將來使用)。
貪婪的,捕獲的匹配,其中包含一個或多個不是的字符.
(字面;方括號內.
實際上意味着.
,不是“任何字符”)。
方括號中的^
並不是輸入錨點的開頭,而是反轉了字符類所匹配的內容。 因此[^x]
將匹配“ x
以外的任何東西”。
因此, [^.]
匹配點以外的所有事物的一個或多個出現。
[^.]+
意思是:除點以外的任何字符都重復一次或多次。
“ [...]”定義了一組字符,任何一個字符都可以滿足。
方括號開頭的“ ^”表示將排除字符集,並包括所有其他字符。 ^此處不算作字符。
“ +”表示必須至少一次,並且可以多次出現
“。” 在這種情況下意味着一個簡單的點
方括號表示“任何封閉的字符”。 尖號(作為方括號內的第一個字符)將其含義更改為“以下任何一個字符”,並且句號失去了其特殊含義。 加號表示“以前的一個或多個單位”,括號表示“將內容作為一個單位進行處理”。
因此([^.]+)
意思是“一個或多個不是句點的字符,被視為一個單位。”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.