带小数和字符的正则表达式

时间:2012-07-09 20:19:25

标签: regex

我试图编写一个接受以下内容的正则表达式:

s#.#
f#.#

其中#可以是任何大小的整数(实际上,小数位前面带有s或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开始,然后是数字,句号和其他数字。所有这些部分都是必需的,数字可以是任意大小和任意数量的整数。

2 个答案:

答案 0 :(得分:4)

试试这个正则表达式:

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

<强>解释

  • ^anchor,匹配字符串的开头。
  • [sf]character class,表示sf
  • \d表示数字。
  • +表示一个或多个。
  • \.匹配文字点。
  • $是一个匹配字符串结尾的锚点。

答案 1 :(得分:0)

要求小数:

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

不要求小数:

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

不允许前导零:

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

不要求小数,不允许前导零:

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

这些都是相当简单的正则表达式,但我希望它能激励你在学习的过程中学到更多东西。它们非常有用。