我需要正则表达式只在字符串中取数字

时间:2015-08-30 13:41:45

标签: regex

我以为我用[0-9]得到它但是当我跑它时只用了一个数字。

字符串例如:

1 note
1,234 notes
68,000 notes

我想要它所以它需要整个数字并省略笔记部分和空格以及逗号所以只是完整的数字。

即使没有逗号,[0-9]也只会占用字符串的第一个数字。

那么如何只取数字呢?

1 个答案:

答案 0 :(得分:2)

[0-9]表示09之间的任何一个字符。您正在寻找的是这些角色重复了多次,但不应该有其他角色。写这个的正确方法是[0-9]+

M+,其中M是某些正则表达式规则,相当于M M*,其中*表示0 or more occurrences。因此,M+可以推断为M指定的部分中至少出现一次。

编辑:现在的问题还说明应该读取整个数字,但是应该从输出中排除逗号。 AFAIK,这是不可能只使用正则表达式完成的,因为匹配的文本不能与存储的文本不同。一种可能的解决方案是将,添加到允许的字符列表中,并解析结果以便以后删除它们。