我希望正则表达式只能从字符串中获取数字。我想忽略前面带有字符的数字。 示例:“(a /(b1 / 8))* 100 在这里,我不想取b1。我想只得到8,100等数字
答案 0 :(得分:4)
您可以使用word boundary,但在下划线后不匹配:
\b\d+
答案 1 :(得分:1)
(?<![a-zA-Z])\d+
应该有效
答案 2 :(得分:1)
您可以使用正则表达式查找带有和不带前导字符的数字,并且只保留不带前导字符的数字:
var str = "(a/(b1/8))*100";
var nums = [], s;
var re = /([a-z]?)(\d+)/g;
while (s = re.exec(str)) {
if (!s[1].length) nums.push(s[2]);
}
alert(nums);
输出:
8, 100
答案 3 :(得分:0)
仅限数字
^(\d ? \d* : (\-?\d+))\d*(\.?\d+:\d*) $
这将接受任何数值包括-1.4,1.3,100,-100
我在asp net中检查了我的自定义数字验证属性