2016-11-20 55 views
0

我想了解從遺留代碼柔性規則,可以幫助:是什麼符號s在彎曲的正則表達式

number [0-9]*['']s?[bdh] 
  1. 什麼是「」(兩個單引號)是什麼意思?這是否意味着一個單引號,第一個引號符號是後面提到的實際報價的轉義符?我的印象是特殊字符需要用反斜槓標記,如[\']。如果''表示',那麼使用反斜槓作爲轉義字符的正確方法是什麼?

  2. 這裏「s」符號的含義是什麼?

你可以舉一些例子,這兩個正則表達式匹配嗎?

回答

0

的Flex圖案在manual都記錄。

  • s只是與字母 「S」

  • 字符的括號內的序列,像[bdh],是一個字符類。它匹配單個字符,該字符是類中任何一個字符。大多數角色在角色類中使用時會失去其特殊含義。

  • '在柔性模式中沒有特殊含義;像s,它只是匹配自己。並且重複角色類中的角色不起作用。所以['']匹配一個單撇號,它可能已被簡寫爲'。但是,許多程序員的編輯認爲撇號用於圍繞字符串或字符文字,而單個撇號會導致語法突出顯示失敗。寫作['']是避免這種誤解的一種方法。 (我個人認爲最好找一個好的編輯器,而不是修改你的代碼來補償一個愚蠢的編輯器,但口味不同。)

0
  1. 我認爲雙撇號只是一個錯誤。括號定義了一個字符集,而撇號沒有特殊的含義。括號內的雙撇號的含義只是包含一個撇號的字符集的含義,這相當於只有一個單撇號。
  2. 字母字符的含義就是字符。因此,s僅表示s。後綴問號使其成爲可選項。

因此,你的表達應相當於

number [0-9]*'s?[bdh] 
+0

感謝您的回答。另一個答案是相似的,但更詳細,所以我接受了。 – R71

相關問題