繁体   English   中英

正则表达式-不在“-”,“。”,“ /”之后的所有数字

[英]regex - all numbers that are not after “-”, “.”, “/”

我正在使用此正则表达式从字符串中提取所有数字。

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

我正在尝试对其进行更改,以便在字符“。”之后出现数字。 “-”“ /”将不会返回。

我试过了

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

要么

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

编辑2

例。 我有这段文字:

 7
.7
-7
/7
-12 123

12,2

22.22

我希望正则表达式返回组123 12,2和22.22

你可以用

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

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

演示(以及使用方法):

 var results = [], regex = /(?:^|[^-.\\/\\d])([\\d,]+(?:\\.\\d+)?)/g, text = document.querySelector("p").innerHTML, m; while (m=regex.exec(text)) { results.push(m[1]); } document.querySelector("pre").innerHTML=JSON.stringify(results); 
 <p>123,456 -12 123 some text. 2258 a.666 36,45 a/123 999 22.22</p> <pre></pre> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM