我需要一個正則表達式的驗證3不同的情況:Especific正則表達式
- 99.99
- F99.9
- F/S99.9
的點可以被替代逗號
我有這樣的東西[F|F/S]?\d*[\,.]\d*
但我不能使第三種情況下工作
任何幫助將不勝感激!
我需要一個正則表達式的驗證3不同的情況:Especific正則表達式
的點可以被替代逗號
我有這樣的東西[F|F/S]?\d*[\,.]\d*
但我不能使第三種情況下工作
任何幫助將不勝感激!
您可以使用可選的羣體,而不是一個字符類:
(?:F(?:/S)?)?\d*[,.]\d+
^^ ^^ ^^^^
如果您需要將整個字符串匹配,加錨左右,^
和$
:^(?:F(?:/S)?)?\d*[,.]\d+$
。
詳細:
(?:F(?:/S)?)?
- 可選F
是任選隨後與/S
\d*
- 0+數字(如果你希望至少1位,取代*
與+
)[,.]
- 逗號或點\d+
- 1+數字。從已刪除的Aaron的答案摘錄:*第三種情況不起作用,因爲您沒有正確編寫第一個正則表達式片段:'[[...]'是一個字符類,它將匹配它包含的任何字符。你用後面的'?'量詞來表示它必須匹配0或1次,所以它不能匹配3個字符'F/S'。簡而言之:一個字符類與在類,並且應用於該類的量詞定義了將匹配多少個這樣的字符。你實際上需要一個*分組*構造而不是一個char類(如我上面已經提到的)。 –
這就是我一直在尋找的東西,你是一個很好的Wiktor!非常感謝你! –
'^(F(/ S)?)?99 \ .9 $'。下一個! –