Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式匹配1-10之间的数字,包括小数_Regex - Fatal编程技术网

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”