我想了解從遺留代碼柔性規則,可以幫助:是什麼符號s在彎曲的正則表達式
number [0-9]*['']s?[bdh]
什麼是「」(兩個單引號)是什麼意思?這是否意味着一個單引號,第一個引號符號是後面提到的實際報價的轉義符?我的印象是特殊字符需要用反斜槓標記,如[\']。如果''表示',那麼使用反斜槓作爲轉義字符的正確方法是什麼?
這裏「s」符號的含義是什麼?
你可以舉一些例子,這兩個正則表達式匹配嗎?
我想了解從遺留代碼柔性規則,可以幫助:是什麼符號s在彎曲的正則表達式
number [0-9]*['']s?[bdh]
什麼是「」(兩個單引號)是什麼意思?這是否意味着一個單引號,第一個引號符號是後面提到的實際報價的轉義符?我的印象是特殊字符需要用反斜槓標記,如[\']。如果''表示',那麼使用反斜槓作爲轉義字符的正確方法是什麼?
這裏「s」符號的含義是什麼?
你可以舉一些例子,這兩個正則表達式匹配嗎?
的Flex圖案在manual都記錄。
s
只是與字母 「S」
字符的括號內的序列,像[bdh]
,是一個字符類。它匹配單個字符,該字符是類中任何一個字符。大多數角色在角色類中使用時會失去其特殊含義。
'
在柔性模式中沒有特殊含義;像s
,它只是匹配自己。並且重複角色類中的角色不起作用。所以['']
匹配一個單撇號,它可能已被簡寫爲'
。但是,許多程序員的編輯認爲撇號用於圍繞字符串或字符文字,而單個撇號會導致語法突出顯示失敗。寫作['']
是避免這種誤解的一種方法。 (我個人認爲最好找一個好的編輯器,而不是修改你的代碼來補償一個愚蠢的編輯器,但口味不同。)
s
僅表示s
。後綴問號使其成爲可選項。因此,你的表達應相當於
number [0-9]*'s?[bdh]
感謝您的回答。另一個答案是相似的,但更詳細,所以我接受了。 – R71