我正在使用此正则表达式从字符串中提取所有数字。
([\d,]+(?:\.\d+)?)
我正在尝试更改它,以便在字符“。”之后出现数字。 “ - ”“/”将不会返回。
我试过
[^-.]([\d,]+(?:\.\d+)?)
或
^[^-.]+$([\d,]+(?:\.\d+)?)
EDIT2
实施例。 我有这样的文字:
7
.7
-7
/7
-12 123
12,2
22.22
我希望正则表达式返回组123 12,2和22.22
答案 0 :(得分:3)
您可以使用
/(?:^|[^-.\/\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>
&#13;