Regex 如何在正则表达式中排除逗号(,)?
我来到了只需要[0-9或.]的场景,我使用了这个正则表达式:Regex 如何在正则表达式中排除逗号(,)?,regex,Regex,我来到了只需要[0-9或.]的场景,我使用了这个正则表达式: [0-9.]$ 此正则表达式接受0-9和。(小数点)。但是当我写这样的东西的时候 1,1 它还接受逗号(,)。如何避免这种情况?此正则表达式可以帮助您: /[0-9.]+/g 接受0到9位数字和点(.) 说明: 匹配下面列表中的单个字符[0-9.]+ +量词-在一次和无限次之间进行匹配,尽可能多地进行匹配,根据需要进行回馈(贪婪) 0-9介于0(索引48)和9(索引57)之间的单个字符(区分大小写) 与字符匹配。字面意思(区分
[0-9.]$
此正则表达式接受0-9和。(小数点)。但是当我写这样的东西的时候
1,1
它还接受逗号(,)。如何避免这种情况?此正则表达式可以帮助您:
/[0-9.]+/g
接受0到9位数字和点(.)
说明:
匹配下面列表中的单个字符[0-9.]+
+
量词-在一次和无限次之间进行匹配,尽可能多地进行匹配,根据需要进行回馈(贪婪)
0-9
介于0(索引48)和9(索引57)之间的单个字符(区分大小写)
与字符匹配。字面意思(区分大小写)
你可以测试一下
一旦您正在寻找解析数字的方法(您说过点代表小数),您可能不希望字符串以点开头,也不以点结尾,并且必须只接受一个点。如果是您的情况,请尝试使用:
^(\d+\.?\d+|\d)$
其中:
表示任意数字(一个或多个)\d+
表示零或一个文字点\.?
表示任意数字(仅一个)\d
或者您可能希望接受以点开头的字符串,这通常被接受为
0
的整数部分,在这种情况下,您可以使用^\d*.?\d+$
此正则表达式[0-9.]$
由一个字符类组成,该字符类与一行$
末尾的数字或点相匹配
如果您只想匹配一个数字或一个点,您可以添加^
以在行首声明位置:
如果要匹配一个或多个数字,可以使用点和一个或多个数字:
您的正则表达式说“输入必须以数字0-9或句点结束”,它不关心最后一个字符之前的任何内容。将其更改为包含所有字符(+或*),并从开头开始(^)。点是一个通配符:它可以匹配任何单个字符(字母、数字、空格等)。必须使用斜杠转义点:
\。
本例中的“点”表示“任何单个字符”。如果只接受“.”,则正则表达式必须为[0-9\.]$。请尝试使用/[0-9.]+/g
@链接,点不需要在字符类中转义。这需要两个或更多数字。从0到9的数字将失败。我建议在开头接受“.”(\d*\.?\d+$
),它在开头被普遍认为是隐式的“0”。“需要“.”不在开头和结尾,如果您真的需要使用单个正则表达式,则需要更昂贵的处理。”bitifet很好地指出!我刚刚编辑了我的正则表达式,以便不允许在开头和结尾使用点,而是接受从0
到9
的数字。此外,我还添加了一条关于您考虑的说明,我认为这是完全正确的。谢谢你,好的。我还忽略了一个事实,即两个正则表达式可以通过“|”操作符组合成一个正则表达式作为替代项(甚至有时我也这样做了!)。干得好