Regex 只有数字、点、逗号和斜杠

Regex 只有数字、点、逗号和斜杠,regex,Regex,我试图创建一个只接受以下值的正则表达式 1 1.1 .1 1,1 ,1 1/1 11 111 1111 and so on... 否则:一个数字,后面可能跟一个点、逗号或斜杠,最后是一个数字 \d*(?:\.|\,|\/)\d 使用此正则表达式,我只能捕获1.1.1、1、1,但如果用户只输入数字,例如1或11或任何数字位数未知的整数,我无法捕获。正则表达式可以根据需要进行修改 \d*([.,\/]?\d+) 试试这个。看演示 以下是一个我认为符合您需要的简短示例: \d?[.,\/]?\d

我试图创建一个只接受以下值的正则表达式

1
1.1
.1
1,1
,1
1/1
11
111
1111
and so on...
否则:一个数字,后面可能跟一个点、逗号或斜杠,最后是一个数字

\d*(?:\.|\,|\/)\d

使用此正则表达式,我只能捕获1.1.1、1、1,但如果用户只输入数字,例如1或11或任何数字位数未知的整数,我无法捕获。正则表达式可以根据需要进行修改

\d*([.,\/]?\d+)
试试这个。看演示


以下是一个我认为符合您需要的简短示例:

\d?[.,\/]?\d+
模式是

\医生:一个可选数字与1.1、1/1或1,1匹配。如果1111.1111等有效,则更改为\d*

[,/]?:可选的单句点、逗号或斜杠

\d+:一个或多个数字

阅读或点。。。最后是一个数字,这可能更准确也许你指的是点/斜杠/逗号后的一个数字

\d*[.,\/]?\d
那是

\d*:任意位数

[,/]?:可选分隔符


\d:如果您正在验证用户在按键或其他设备上的输入,则为一个位数, 你也需要这张表格1

这应该涵盖所有基础

 #  ^(?:\d+(?:[.,/]\d*)?|[.,/]\d+)$

 ^ 
 (?:
      \d+                 # Forms 1 or 1, or 1,1
      (?: [.,/] \d* )?
   |                    # or,
      [.,/] \d+           # Form ,1 only
 )
 $

您使用的是哪个版本的正则表达式?我想在HTML输入框中将其用作模式,但我不知道其版本。感谢您的回答,在regexr.com和expresso软件中测试此正则表达式时,它没有捕获我想要的值。@user3677132我在回答中有一个小的输入错误。更正。请看编辑,我又检查了一遍,它成功了。虽然它没有捕获.1或,1,但这对于我创建的项目不是强制性的。非常感谢。我对第一个很满意。不需要使用第二个,你已经帮了我。非常非常感谢,很有意思。我不确定是否需要非捕获组,或者该组是否需要贪婪。我认为这取决于1.1.1.1.1.1.1.1.1或类似内容是否属于试验数据的一部分
 #  ^(?:\d+(?:[.,/]\d*)?|[.,/]\d+)$

 ^ 
 (?:
      \d+                 # Forms 1 or 1, or 1,1
      (?: [.,/] \d* )?
   |                    # or,
      [.,/] \d+           # Form ,1 only
 )
 $