我需要一个正则表达式来从给定的字符串中提取分数、小数和整数值。例如,输入将如下所示。
- 1/2 个苹果
- 1.5橙
- 2.5橙
- 1个柠檬
并且输出应该如下。
- 1/2
- 1.5
- 2.5
- 1
我想出了如何使用 3 个不同的正则表达式分别提取小数、小数和整数值,但我想不出一种方法来用一个正则表达式提取所有可能的数字值。
我目前正在使用 Javascript String 对象的匹配方法。
任何帮助将不胜感激。
我需要一个正则表达式来从给定的字符串中提取分数、小数和整数值。例如,输入将如下所示。
并且输出应该如下。
我想出了如何使用 3 个不同的正则表达式分别提取小数、小数和整数值,但我想不出一种方法来用一个正则表达式提取所有可能的数字值。
我目前正在使用 Javascript String 对象的匹配方法。
任何帮助将不胜感激。
如果您确定所有字符串具有相同的格式(即以数量开头,然后是空格,然后是文本),则甚至不需要正则表达式:
"1/2 apples".split(" ").shift(); // gives "1/2"
在这种情况下,最简单的正则表达式(假设您的数字始终位于字符串的开头)是:
^\S+
例子:
'1/2 apples'.match(/^\S+/) // ["1/2"]
'1 lemon'.match(/^\S+/) // ["1"]
那么为什么不展示你的工作正则表达式呢?
但这里是如何,只需使用交替:
\d+(\/\d+|\.\d+)?
这已经稍微优化了。您可以简单地将三个正则表达式分开|
。