我有像
这样的字符串8.123.351(此处有些文字)
我使用了正则表达式
/([0-9,]+(\.[0-9]{2,})+(\.[0-9]{2,})?)/
从字符串中取值“8.123.351”。它适用于上面给出的字符串。
但是当字符串没有“。”时它不起作用。例如“179(这里有些文字)”。 我修改了Regex以匹配此值,但没有成功。
所以任何人都可以建议我使用正则表达式从字符串中获取数字:
答案 0 :(得分:1)
/([0-9]+[,\.]?)+/
匹配所有字符串
顺便说一句......您的RegEx需要一个匹配点,因为+
表示一个或多个匹配。 *
为0或更高,?
为0或1
答案 1 :(得分:1)
你不是很清楚。我做了一些假设来创建一个模式。
现在我们创建你的表达
在行的开头匹配1到3位数
/^\d{1,3}/
可选择(组后?
)一个点和一到三个数字
/^\d{1,3}(?:\.\d{1,3})?/
这个带点的部分可以重复0次或更多次(用?
替换*
)
/^\d{1,3}(?:\.\d{1,3})*/
如果您想阅读有关正则表达式的一些基础知识,I wrote a blog post about that。