Javascript 正则表达式-所有不在“后”的数字-&引用&引用&引用&引用/&引用;

Javascript 正则表达式-所有不在“后”的数字-&引用&引用&引用&引用/&引用;,javascript,regex,Javascript,Regex,我用这个正则表达式从字符串中提取所有数字 ([\d,]+(?:\.\d+)?) 我正在尝试更改它,以便不会返回字符“—”/”后面的数字 我试过了 [^-.]([\d,]+(?:\.\d+)?) 或 Edit2 例如。 我有以下案文: 7 .7 -7 /7 -12 123 12,2 22.22 我希望正则表达式返回您可以使用的组12312、2和22.22 /(?:^|[^-.\/\d])([\d,]+(?:\.\d+)?)/g 第一部分的意思是“字符串或不是、或-的字符的开头(在未

我用这个正则表达式从字符串中提取所有数字

([\d,]+(?:\.\d+)?)
我正在尝试更改它,以便不会返回字符“—”/”后面的数字

我试过了

[^-.]([\d,]+(?:\.\d+)?) 

Edit2

例如。 我有以下案文:

 7
.7
-7
/7
-12 123

12,2

22.22
我希望正则表达式返回您可以使用的组12312、2和22.22

/(?:^|[^-.\/\d])([\d,]+(?:\.\d+)?)/g
第一部分的意思是“字符串或不是
-
的字符的开头(在未捕获的组中)。我在该组中添加了
\d
,以避免从不应捕获的数字的第二位开始捕获

演示(以及使用方法):

var结果=[],
正则表达式=/(?:^-.\/\d])([\d,]+(?:\.\d+))/g,
text=document.querySelector(“p”).innerHTML,
M
while(m=regex.exec(text)){
结果:push(m[1]);
}
document.querySelector(“pre”).innerHTML=JSON.stringify(结果);
123456-12123一些文本。2258 a.666 36,45 a/123999 22.22

您可以使用

/(?:^|[^-.\/\d])([\d,]+(?:\.\d+)?)/g
第一部分表示“字符串的开头或不是
/
-
的字符(在未捕获的组中)。我在该组中添加了
\d
,以避免从不应捕获的数字的第二位开始捕获

演示(以及使用方法):

var结果=[],
正则表达式=/(?:^-.\/\d])([\d,]+(?:\.\d+))/g,
text=document.querySelector(“p”).innerHTML,
M
while(m=regex.exec(text)){
结果:push(m[1]);
}
document.querySelector(“pre”).innerHTML=JSON.stringify(结果)
123456-12123一些文本。2258 a.666 36,45 a/123 999 22.22


那么,您当前的代码有什么问题吗?请您更准确地描述您的问题,也许可以使用文本和您希望找到的匹配项?您想要这个吗@kang FYI先生:这在JavaScript中不起作用。消极的lookbehind在JavaScript中不起作用。JavaScript对正则表达式的实现很糟糕。我想我应该提一下,因为JavaScipt被标记了。@LarsH不,因为这不是答案。正如其他人所指出的,它使用了JavaScript中不可用的功能。那么,您当前的代码有什么问题吗?请您更准确地描述您的问题,也许可以使用文本和您希望找到的匹配项?您想要这个吗@kang FYI先生:这在JavaScript中不起作用。消极的lookbehind在JavaScript中不起作用。JavaScript对正则表达式的实现很糟糕。我想我应该提一下,因为JavaScipt被标记了。@LarsH不,因为这不是答案。正如其他人所指出的,它使用了JavaScript中不可用的功能。我认为它是完美的。给我几分钟检查一下,我会批准的。谢谢,我看到你更新的问题了。例如,我的答案找不到22.22。让我编辑一下。编辑:多尼编辑了我的答案。现在这个想法应该很清楚了,我建议你用我的方法和一篇广泛的文章来检查一切,如果必要的话,调整一下。太棒了。行。谢谢我觉得它很完美。给我几分钟检查一下,我会批准的。谢谢,我看到你更新的问题了。例如,我的答案找不到22.22。让我编辑一下。编辑:多尼编辑了我的答案。现在这个想法应该很清楚了,我建议你用我的方法和一篇广泛的文章来检查一切,如果必要的话,调整一下。太棒了。行。谢谢