Regex 正则表达式匹配1-10之间的数字,包括小数
我匹配的号码如下:Regex 正则表达式匹配1-10之间的数字,包括小数,regex,Regex,我匹配的号码如下: 0 1 1.5 2 2.1 3 3.5 .. up to 10 什么是匹配这些数字的好正则表达式 编辑:可接受的数字应为:一个介于0和10之间的整数,后跟0或1个小数,形式为介于1和9之间的整数 我没有准备好这些数字,我需要在复杂的html中匹配它们 例1: <div style="whatever">gotta match this number 3.5</div> 必须匹配这个数字3.5 例2: <what>11 dont mat
0
1
1.5
2
2.1
3
3.5
..
up to
10
什么是匹配这些数字的好正则表达式
编辑:可接受的数字应为:一个介于0和10之间的整数,后跟0或1个小数,形式为介于1和9之间的整数
我没有准备好这些数字,我需要在复杂的html中匹配它们
例1:
<div style="whatever">gotta match this number 3.5</div>
必须匹配这个数字3.5
例2:
<what>11 dont match it
11不匹配
例3:
<what>9<weirdtag>match me</div>
9匹配我
无需正则表达式,只需使用条件,您就可以更轻松地进行匹配,如下所示:
10.5
var string='sljfkd;4lskf8iel5.3jslkd;a';
变量编号=string.match(/\d\.*\d*/gm);
var匹配=[];
对于(i=0;i 如果(numbers[i]>=1&&numbers[i]如果您想使用正则表达式,那么我相信这个可怕的正则表达式符合您的要求:
(?<![\d\.-])\d(\.\d)?(?!(\.\d)|\d)|(?<![\d\.-])10(?!(\.\d)|\d])
这将根据您的要求匹配一个数字,可以选择后跟一个句点和一个数字“”,也可以匹配数字10(无小数点)
正则表达式的其他部分添加了行为,以确保正则表达式不匹配负数或后跟句点和更多数字的数字。这是为了确保类似以下内容:
10.5
不会产生两个不同的匹配:“10”和“5”
注意
这将不匹配.5.7.9
(但将匹配0.5 0.7 0.9
)
此外,它将不匹配10.0
(但将匹配10
)
那么:
(?<!\d)(\d(?:\.[1-9])?|10)(?!\d)
(?
其中:
(?<!\d) : negative look behind assuming there're no digits before
( : begin capture group 1
\d : a digit
(?: : begin non capture group
\. : a dot
[1-9] : a digit between 1 and 9
)? : end group, optional
| : OR
10 : number 10
) : end group 1
(?!\d) : negative lookahead, no digits after
(?另一种方法是(如果您使用类似逗号的点符号,
,并且您只希望有一个精度):
^(\d |(\d\,\d)| 10){1}$
您可以对其进行cat测试。将其解析为一个数字,然后检查范围。10.0可以接受吗?10.1可以接受吗?0.0可以接受吗?0可以接受吗?000.1可以接受吗?或者是唯一可以接受的值整数和小数,小数部分为.5?请澄清您的要求。但我没有可用的数字,需要匹配它们包含在html代码中。啊哈。我明白了。尝试使用两者的组合。我正在编辑我的答案。注意:这将匹配“8.91”中的“8”(原始海报可能接受也可能不接受)…它还将匹配“.6”作为“6”(同样,这可能可以接受?)…它还将匹配“-9”作为“9”