簡體   English   中英

正則表達式是什么意思?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM