我需要一个正则表达式来验证two or one
数字,然后是,
或.
以及two or one
个数字。
所以,这些是有效的输入:
11,11
11.11
1.1
1,1
答案 0 :(得分:64)
\d{1,2}[\,\.]{1}\d{1,2}
编辑:更新以满足新要求(评论);)
编辑:根据布莱恩删除不必要的限定符
^[0-9]{1,2}([,.][0-9]{1,2})?$
答案 1 :(得分:19)
为了以正则表达式的形式表示单个数字,您可以使用:
[0-9]或\ d
为了指定数字出现的次数,您需要添加
[0-9] *:星号表示零位或多位
[0-9] {2}:{N}表示N位数
[0-9] {0,2}:{N,M} N位或M位
[0-9] {0-9}:{N-M} N位到M位。注意:M可以留空以进行无限表示
假设我想代表1到99之间的数字,我会这样表达:
[0-9] {1-2}或[0-9] {1,2}或\ d {1-2}或\ d {1,2}
或者假设我们正在使用二进制显示,显示字节大小,我们希望我们的数字介于0和1之间,字节大小的长度为8,所以我们将表示如下:
[0-1] {8}表示二进制字节
然后,如果你想添加一个或一个。你会用的符号:
\,或\。或者您可以使用[。]或[,]
您也可以在可能的值之间进行选择
[。,]表示点或逗号符号
并且您只需要将这些部分连接在一起,因此,如果您想要表示1位或2位数字后跟逗号或句点,然后再加上两位数字,您可以按如下方式表达: >
[0-9] {1,2} [,] \ d {1-2}
另请注意,C ++字符串中的正则表达式字符串必须双击,因此每个\变为\\
答案 2 :(得分:14)
\d
表示大多数语言中的数字。您还可以在所有语言中使用[0-9]
。对于“句号或逗号”,请使用[\.,]
。根据您的语言,您可能需要根据引用表达式的方式添加更多反斜杠。最终,正则表达式引擎需要看到一个反斜杠。
*
表示“零或多”,因此\d*
和[0-9]*
表示“零或多个数字”。 ?
表示“零或一”。这些限定词都不是唯一的。大多数语言也允许您使用{m,n}
表示“m和n之间”(即:{1,2}表示“介于1和2之间”)
由于点或逗号和其他数字是可选的,您可以将它们放在一个组中,并使用?
量词来表示该组中的“零或一”。
将所有这些放在一起你可以使用:
\d{1,2}([\.,][\d{1,2}])?
含义,一个或两个数字\d{1,2}
,后跟一个组(...)?
中的零个或一个组成的点或逗号后跟一个或两个数字[\.,]\d{1,2}
答案 3 :(得分:11)
\d{1,2}[,.]\d{1,2}
\ d表示一个数字,{1,2}部分表示前一个字符的1或2(在本例中为\ d),[,。]部分表示逗号或点。
答案 4 :(得分:1)
如果你想要非常宽容,只需要两个逗号或点的最终数字:
^([,.\d]+)([,.]\d{2})$
答案 5 :(得分:0)
我知道最短的正则表达式
^\d\d?[,.]\d\d?$
^和$表示输入字符串的开始和结束(如果没有这部分,则字符串123.45之类的23.45将被匹配)。 \ d表示数字,\ d是数字?表示可选数字,[,.]表示点或逗号。工作示例(当您单击左侧菜单>工具>代码生成器时,您可以为9种流行语言之一生成代码,例如c#,js,php,java等)here。