2012-07-09 12 views
1

我想寫一個正則表達式將接受以下的正則表達式F)。我也需要這個來接受別的。所以,如果是這樣的:與小數和字符

As#.# would not be accepted because there's an A before the s 
s#.#X would not be accepted because there's an X after the decimal. 

總是會有帶有S或F開始,然後一個數字,一個時期和另一個號碼。所有這些部分都是必需的,數字可以是任何大小和任意數量的整數。

+0

什麼是「不接受任何其他」是什麼意思? – sln 2012-07-09 20:28:19

+0

鑑於這個問題可能有十多個答案,它根本不是很清楚。也許你可以舉更多的例子。 – sln 2012-07-09 20:34:42

+0

看起來這個問題被截斷了,我有我的意思的例子,我會加回他們,但發佈的答案似乎已經找出了我的意思。 – CHP 2012-07-09 21:08:02

回答

4

試試這個正則表達式:

/^[sf]\d+\.\d+$/ 

說明

  • ^anchor該字符串的開頭匹配。
  • [sf]character class並且表示sf
  • \d表示一個數字。
  • +表示一個或多個。
  • \.與字面點匹配。
  • $是匹配字符串末尾的錨點。
+0

非常簡潔明瞭的解釋! – CHP 2012-07-09 20:29:15

0

要求十進制:

/^[sf]\d+\.\d+$/ 

不需要十進制:

/^[sf]\d+(\.\d+)?$/ 

不使前導零:

/^[sf][1-9]\d*\.\d+$/ 

不需要小數,不允許前導零:

/^[sf][1-9]\d*(\.\d+)?$/ 

這些都是相當微不足道的正則表達式,但我希望它啓發你學習更多,因爲你去。它們非常有用。